@kp-ui/lowcode 2.15.0-beta.7 → 2.16.0-alpha.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/install.js +17 -15
- package/install.js.map +1 -1
- package/package.json +4 -7
- package/src/components/FormRender/FormContainer.vue.js +55 -0
- package/src/components/FormRender/FormContainer.vue.js.map +1 -0
- package/src/components/FormRender/FormContainer.vue2.js +5 -0
- package/src/components/FormRender/FormContainer.vue2.js.map +1 -0
- package/src/components/FormRender/index.vue.js +2 -2
- package/src/components/FormRender/index.vue2.js +28 -30
- package/src/components/FormRender/index.vue2.js.map +1 -1
- package/src/components/FormRender/useFormContext.js +116 -109
- package/src/components/FormRender/useFormContext.js.map +1 -1
- package/src/components/{designer.js → form-designer/designer.js} +76 -71
- package/src/components/form-designer/designer.js.map +1 -0
- package/src/components/form-designer/form-widget/RenderDesignerWigetList.vue.js +1 -1
- package/src/components/form-designer/form-widget/RenderDesignerWigetList.vue.js.map +1 -1
- package/src/components/form-designer/form-widget/container-widget/useTableWidget.js +143 -138
- package/src/components/form-designer/form-widget/container-widget/useTableWidget.js.map +1 -1
- package/src/components/form-designer/form-widget/container-widget/vf-box-widget.vue.js +2 -2
- package/src/components/form-designer/form-widget/container-widget/vf-box-widget.vue2.js +18 -19
- package/src/components/form-designer/form-widget/container-widget/vf-box-widget.vue2.js.map +1 -1
- package/src/components/form-designer/form-widget/container-widget/vf-dialog-widget.vue.js +2 -2
- package/src/components/form-designer/form-widget/container-widget/vf-dialog-widget.vue2.js +22 -16
- package/src/components/form-designer/form-widget/container-widget/vf-dialog-widget.vue2.js.map +1 -1
- package/src/components/form-designer/form-widget/field-widget/bpmn-editor-widget copy.vue.js +8 -0
- package/src/components/form-designer/form-widget/field-widget/bpmn-editor-widget copy.vue.js.map +1 -0
- package/src/components/form-designer/form-widget/field-widget/bpmn-editor-widget copy.vue2.js +58 -0
- package/src/components/form-designer/form-widget/field-widget/bpmn-editor-widget copy.vue2.js.map +1 -0
- package/src/components/form-designer/form-widget/field-widget/form-item-wrapper.vue.js +1 -1
- package/src/components/form-designer/form-widget/field-widget/form-item-wrapper.vue2.js +66 -54
- package/src/components/form-designer/form-widget/field-widget/form-item-wrapper.vue2.js.map +1 -1
- package/src/components/form-designer/form-widget/field-widget/index.js +1 -1
- package/src/components/form-designer/form-widget/field-widget/index.js.map +1 -1
- package/src/components/form-designer/form-widget/field-widget/rich-editor-widget.vue2.js.map +1 -1
- package/src/components/form-designer/form-widget/field-widget/useField.js +140 -140
- package/src/components/form-designer/form-widget/field-widget/useField.js.map +1 -1
- package/src/components/form-designer/form-widget/index.vue.js +2 -2
- package/src/components/form-designer/form-widget/index.vue2.js +56 -47
- package/src/components/form-designer/form-widget/index.vue2.js.map +1 -1
- package/src/components/form-designer/form-widget/useFormDesigner.js +34 -0
- package/src/components/form-designer/form-widget/useFormDesigner.js.map +1 -0
- package/src/components/form-designer/index.vue.js +77 -74
- package/src/components/form-designer/index.vue.js.map +1 -1
- package/src/components/form-designer/setting-panel/form-setting.vue.js +2 -2
- package/src/components/form-designer/setting-panel/form-setting.vue2.js +100 -126
- package/src/components/form-designer/setting-panel/form-setting.vue2.js.map +1 -1
- package/src/components/form-designer/setting-panel/index.vue.js +1 -1
- package/src/components/form-designer/setting-panel/index.vue2.js +1 -1
- package/src/components/form-designer/setting-panel/index.vue2.js.map +1 -1
- package/src/components/form-designer/setting-panel/option-items-setting.vue.js +2 -2
- package/src/components/form-designer/setting-panel/option-items-setting.vue2.js +1 -1
- package/src/components/form-designer/setting-panel/option-items-setting.vue2.js.map +1 -1
- package/src/components/form-designer/setting-panel/property-editor/boxModel-editor.vue.js +1 -1
- package/src/components/form-designer/setting-panel/property-editor/boxModel-editor.vue2.js +255 -201
- package/src/components/form-designer/setting-panel/property-editor/boxModel-editor.vue2.js.map +1 -1
- package/src/components/form-designer/setting-panel/property-editor/button-list-editor.vue2.js +45 -39
- package/src/components/form-designer/setting-panel/property-editor/button-list-editor.vue2.js.map +1 -1
- package/src/components/form-designer/setting-panel/property-editor/container-data-table/data-table-customClass-editor.vue2.js +1 -1
- package/src/components/form-designer/setting-panel/property-editor/container-data-table/data-table-customClass-editor.vue2.js.map +1 -1
- package/src/components/form-designer/setting-panel/property-editor/container-data-table/data-table-dsEnabled-editor.vue2.js +1 -1
- package/src/components/form-designer/setting-panel/property-editor/container-data-table/data-table-dsEnabled-editor.vue2.js.map +1 -1
- package/src/components/form-designer/setting-panel/property-editor/container-data-table/data-table-showButtonsColumn-editor.vue.js +2 -2
- package/src/components/form-designer/setting-panel/property-editor/container-data-table/data-table-showButtonsColumn-editor.vue2.js.map +1 -1
- package/src/components/form-designer/setting-panel/property-editor/container-data-table/data-table-tableColumns-editor.vue.js +1 -1
- package/src/components/form-designer/setting-panel/property-editor/container-data-table/data-table-tableColumns-editor.vue2.js +1 -1
- package/src/components/form-designer/setting-panel/property-editor/container-data-table/data-table-tableColumns-editor.vue2.js.map +1 -1
- package/src/components/form-designer/setting-panel/property-editor/container-grid/gutter-editor.vue.js +2 -2
- package/src/components/form-designer/setting-panel/property-editor/container-grid/gutter-editor.vue2.js +1 -1
- package/src/components/form-designer/setting-panel/property-editor/container-grid/gutter-editor.vue2.js.map +1 -1
- package/src/components/form-designer/setting-panel/property-editor/container-grid-col/grid-col-span-editor.vue2.js +1 -1
- package/src/components/form-designer/setting-panel/property-editor/container-grid-col/grid-col-span-editor.vue2.js.map +1 -1
- package/src/components/form-designer/setting-panel/property-editor/container-tab/tab-customClass-editor.vue.js +1 -1
- package/src/components/form-designer/setting-panel/property-editor/container-tab/tab-customClass-editor.vue2.js +1 -1
- package/src/components/form-designer/setting-panel/property-editor/container-tab/tab-customClass-editor.vue2.js.map +1 -1
- package/src/components/form-designer/setting-panel/property-editor/container-table-cell/cellHeight-editor.vue.js +32 -0
- package/src/components/form-designer/setting-panel/property-editor/container-table-cell/cellHeight-editor.vue.js.map +1 -0
- package/src/components/form-designer/setting-panel/property-editor/container-table-cell/cellWidth-editor.vue.js +32 -0
- package/src/components/form-designer/setting-panel/property-editor/container-table-cell/cellWidth-editor.vue.js.map +1 -0
- package/src/components/form-designer/setting-panel/property-editor/container-vf-dialog/cancelButtonLabel-editor.vue2.js.map +1 -1
- package/src/components/form-designer/setting-panel/property-editor/container-vf-dialog/height-editor.vue2.js.map +1 -1
- package/src/components/form-designer/setting-panel/property-editor/container-vf-dialog/left-editor.vue.js +5 -0
- package/src/components/form-designer/setting-panel/property-editor/container-vf-dialog/left-editor.vue.js.map +1 -0
- package/src/components/form-designer/setting-panel/property-editor/container-vf-dialog/left-editor.vue2.js +38 -0
- package/src/components/form-designer/setting-panel/property-editor/container-vf-dialog/left-editor.vue2.js.map +1 -0
- package/src/components/form-designer/setting-panel/property-editor/container-vf-dialog/top-editor.vue.js +5 -0
- package/src/components/form-designer/setting-panel/property-editor/container-vf-dialog/top-editor.vue.js.map +1 -0
- package/src/components/form-designer/setting-panel/property-editor/container-vf-dialog/top-editor.vue2.js +38 -0
- package/src/components/form-designer/setting-panel/property-editor/container-vf-dialog/top-editor.vue2.js.map +1 -0
- package/src/components/form-designer/setting-panel/property-editor/container-vf-dialog/width-editor.vue2.js +10 -10
- package/src/components/form-designer/setting-panel/property-editor/container-vf-dialog/width-editor.vue2.js.map +1 -1
- package/src/components/form-designer/setting-panel/property-editor/customClass-editor.vue2.js +1 -1
- package/src/components/form-designer/setting-panel/property-editor/customClass-editor.vue2.js.map +1 -1
- package/src/components/form-designer/setting-panel/property-editor/event-handler/onTableChange-editor.vue2.js +4 -4
- package/src/components/form-designer/setting-panel/property-editor/event-handler/onTableChange-editor.vue2.js.map +1 -1
- package/src/components/form-designer/setting-panel/property-editor/field-rate/rate-defaultValue-editor.vue2.js +1 -1
- package/src/components/form-designer/setting-panel/property-editor/field-rate/rate-defaultValue-editor.vue2.js.map +1 -1
- package/src/components/form-designer/setting-panel/property-editor/field-slider/range-editor.vue2.js +1 -1
- package/src/components/form-designer/setting-panel/property-editor/field-slider/range-editor.vue2.js.map +1 -1
- package/src/components/form-designer/setting-panel/property-editor/field-switch/switch-defaultValue-editor.vue2.js +1 -1
- package/src/components/form-designer/setting-panel/property-editor/field-switch/switch-defaultValue-editor.vue2.js.map +1 -1
- package/src/components/form-designer/setting-panel/property-editor/index.js +178 -176
- package/src/components/form-designer/setting-panel/property-editor/index.js.map +1 -1
- package/src/components/form-designer/setting-panel/property-editor/labelIconClass-editor.vue2.js +29 -18
- package/src/components/form-designer/setting-panel/property-editor/labelIconClass-editor.vue2.js.map +1 -1
- package/src/components/form-designer/setting-panel/property-editor/multiple-editor.vue2.js.map +1 -1
- package/src/components/form-designer/setting-panel/property-editor/optionItems-editor.vue2.js +1 -1
- package/src/components/form-designer/setting-panel/property-editor/optionItems-editor.vue2.js.map +1 -1
- package/src/components/form-designer/setting-panel/property-editor/rightSlotCss-editor.vue2.js +1 -1
- package/src/components/form-designer/setting-panel/property-editor/rightSlotCss-editor.vue2.js.map +1 -1
- package/src/components/form-designer/setting-panel/property-editor/type-editor.vue2.js.map +1 -1
- package/src/components/form-designer/setting-panel/property-editor/useEditor.js +1 -1
- package/src/components/form-designer/setting-panel/property-editor/useEditor.js.map +1 -1
- package/src/components/form-designer/setting-panel/propertyRegister.js +12 -12
- package/src/components/form-designer/setting-panel/propertyRegister.js.map +1 -1
- package/src/components/form-designer/toolbar-panel/PreviewDialog.vue.js +1 -1
- package/src/components/form-designer/toolbar-panel/PreviewDialog.vue.js.map +1 -1
- package/src/components/form-designer/toolbar-panel/index.vue.js +2 -2
- package/src/components/form-designer/toolbar-panel/index.vue2.js +177 -137
- package/src/components/form-designer/toolbar-panel/index.vue2.js.map +1 -1
- package/src/components/form-designer/widget-panel/PanelItemDrag.vue.js +50 -0
- package/src/components/form-designer/widget-panel/PanelItemDrag.vue.js.map +1 -0
- package/src/components/form-designer/widget-panel/basicFields/input.js +4 -2
- package/src/components/form-designer/widget-panel/basicFields/input.js.map +1 -1
- package/src/components/form-designer/widget-panel/containers/vf-box.js +1 -4
- package/src/components/form-designer/widget-panel/containers/vf-box.js.map +1 -1
- package/src/components/form-designer/widget-panel/containers/vf-dialog.js +34 -10
- package/src/components/form-designer/widget-panel/containers/vf-dialog.js.map +1 -1
- package/src/components/form-designer/widget-panel/index.vue.js +2 -2
- package/src/components/form-designer/widget-panel/index.vue2.js +34 -74
- package/src/components/form-designer/widget-panel/index.vue2.js.map +1 -1
- package/src/components/form-render/container-items/data-table-widget.vue.js +3 -3
- package/src/components/form-render/container-items/data-table-widget.vue2.js +65 -64
- package/src/components/form-render/container-items/data-table-widget.vue2.js.map +1 -1
- package/src/components/form-render/dynamic-dialog.vue.js +79 -83
- package/src/components/form-render/dynamic-dialog.vue.js.map +1 -1
- package/src/components/public/ActionButtonListDialog.vue.js +2 -2
- package/src/components/public/ActionButtonListDialog.vue2.js +117 -96
- package/src/components/public/ActionButtonListDialog.vue2.js.map +1 -1
- package/src/components/public/ActionButtonListRender.vue.js +17 -15
- package/src/components/public/ActionButtonListRender.vue.js.map +1 -1
- package/src/components/public/ActionButtonListRender.vue2.js +48 -38
- package/src/components/public/ActionButtonListRender.vue2.js.map +1 -1
- package/src/components/public/ConfigView/CustomPageRender.vue.js +58 -0
- package/src/components/public/ConfigView/CustomPageRender.vue.js.map +1 -0
- package/src/components/public/ConfigView/CustomPageRender.vue2.js +5 -0
- package/src/components/public/ConfigView/CustomPageRender.vue2.js.map +1 -0
- package/src/components/public/CustomerModal/CustomerModal.vue2.js +63 -56
- package/src/components/public/CustomerModal/CustomerModal.vue2.js.map +1 -1
- package/src/constants/EditorTypeEnum.js +1 -1
- package/src/constants/EditorTypeEnum.js.map +1 -1
- package/src/constants/WidgetTypeEnum.js +3 -4
- package/src/constants/WidgetTypeEnum.js.map +1 -1
- package/src/hooks/useDataHttp.js +8 -7
- package/src/hooks/useDataHttp.js.map +1 -1
- package/src/hooks/useLowcode.js.map +1 -1
- package/src/lang/en-US.js +3 -1
- package/src/lang/en-US.js.map +1 -1
- package/src/lang/zh-CN.js +5 -5
- package/src/lang/zh-CN.js.map +1 -1
- package/src/utils/util.js +26 -35
- package/src/utils/util.js.map +1 -1
- package/stats.html +1 -1
- package/styles/style.css +1 -1
- package/src/components/FormRender/FormContainer.js +0 -52
- package/src/components/FormRender/FormContainer.js.map +0 -1
- package/src/components/bi-widget/echartBar/echart-bar-widget.vue.js +0 -8
- package/src/components/bi-widget/echartBar/echart-bar-widget.vue.js.map +0 -1
- package/src/components/bi-widget/echartBar/echart-bar-widget.vue2.js +0 -43
- package/src/components/bi-widget/echartBar/echart-bar-widget.vue2.js.map +0 -1
- package/src/components/bi-widget/echartBar/echart-bar.js +0 -35
- package/src/components/bi-widget/echartBar/echart-bar.js.map +0 -1
- package/src/components/bi-widget/index.js +0 -13
- package/src/components/bi-widget/index.js.map +0 -1
- package/src/components/designer.js.map +0 -1
- package/src/components/form-designer/form-widget/RenderDesignerPC.vue.js +0 -26
- package/src/components/form-designer/form-widget/RenderDesignerPC.vue.js.map +0 -1
- package/src/components/form-designer/form-widget/RenderDesignerPC.vue2.js +0 -5
- package/src/components/form-designer/form-widget/RenderDesignerPC.vue2.js.map +0 -1
- package/src/components/form-designer/form-widget/bi/RenderDesignerBI.vue.js +0 -8
- package/src/components/form-designer/form-widget/bi/RenderDesignerBI.vue.js.map +0 -1
- package/src/components/form-designer/form-widget/bi/RenderDesignerBI.vue2.js +0 -68
- package/src/components/form-designer/form-widget/bi/RenderDesignerBI.vue2.js.map +0 -1
- package/src/components/form-designer/form-widget/bi/RenderDesignerBIWigetList.vue.js +0 -8
- package/src/components/form-designer/form-widget/bi/RenderDesignerBIWigetList.vue.js.map +0 -1
- package/src/components/form-designer/form-widget/bi/RenderDesignerBIWigetList.vue2.js +0 -136
- package/src/components/form-designer/form-widget/bi/RenderDesignerBIWigetList.vue2.js.map +0 -1
- package/src/components/form-designer/form-widget/bi/WidgetContextMenu.vue.js +0 -8
- package/src/components/form-designer/form-widget/bi/WidgetContextMenu.vue.js.map +0 -1
- package/src/components/form-designer/form-widget/bi/WidgetContextMenu.vue2.js +0 -153
- package/src/components/form-designer/form-widget/bi/WidgetContextMenu.vue2.js.map +0 -1
- package/src/components/form-designer/form-widget/bi/useRuler.js +0 -66
- package/src/components/form-designer/form-widget/bi/useRuler.js.map +0 -1
- package/src/components/form-designer/setting-panel/panel/PanelItemDrag.vue.js +0 -51
- package/src/components/form-designer/setting-panel/panel/PanelItemDrag.vue.js.map +0 -1
- package/src/components/form-designer/setting-panel/panel/PanelItemDragForBI.vue.js +0 -51
- package/src/components/form-designer/setting-panel/panel/PanelItemDragForBI.vue.js.map +0 -1
- package/src/components/form-designer/setting-panel/panel/PanelItemDragForBI.vue2.js +0 -5
- package/src/components/form-designer/setting-panel/panel/PanelItemDragForBI.vue2.js.map +0 -1
- package/src/components/form-designer/setting-panel/property-editor/dsEnabled-editor.vue.js +0 -5
- package/src/components/form-designer/setting-panel/property-editor/dsEnabled-editor.vue.js.map +0 -1
- package/src/components/form-designer/setting-panel/property-editor/dsEnabled-editor.vue2.js +0 -71
- package/src/components/form-designer/setting-panel/property-editor/dsEnabled-editor.vue2.js.map +0 -1
- package/src/components/form-designer/setting-panel/property-editor/echart-bar-editor.vue.js +0 -5
- package/src/components/form-designer/setting-panel/property-editor/echart-bar-editor.vue.js.map +0 -1
- package/src/components/form-designer/setting-panel/property-editor/echart-bar-editor.vue2.js +0 -81
- package/src/components/form-designer/setting-panel/property-editor/echart-bar-editor.vue2.js.map +0 -1
- package/src/components/form-render/SubmitButtonRender.vue.js +0 -92
- package/src/components/form-render/SubmitButtonRender.vue.js.map +0 -1
- package/src/components/form-render/SubmitButtonRender.vue2.js +0 -5
- package/src/components/form-render/SubmitButtonRender.vue2.js.map +0 -1
- package/src/constants/LayoutTypeEnum.js +0 -5
- package/src/constants/LayoutTypeEnum.js.map +0 -1
- package/src/hooks/useDesigner.js +0 -51
- package/src/hooks/useDesigner.js.map +0 -1
- /package/src/components/form-designer/{setting-panel/panel → widget-panel}/PanelItemDrag.vue2.js +0 -0
- /package/src/components/form-designer/{setting-panel/panel → widget-panel}/PanelItemDrag.vue2.js.map +0 -0
|
@@ -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 { FormConfig, 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('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<FormConfig>(() => 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 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 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 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 onMounted(() => {\n if (formJson) {\n setFormJson(formJson);\n }\n fieldChangeEventHandler();\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","dialogOrDrawerRef","executeFunction","context","execHttpFunction","useExecFunction","getFormRef","getWidgetRef","registerToRefList","useAppRef","formConfig","computed","_a","widgetList","labelPosition","setChildFormRef","chid","labelWidth","customClass","formValidator","useFormValidation","watchEffect","setFormJson","json","insertCustomCode","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","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,35 +1,37 @@
|
|
|
1
1
|
var D = Object.defineProperty;
|
|
2
|
-
var b = (
|
|
3
|
-
var
|
|
4
|
-
import { deepClone as o, getDefaultFormConfig as c,
|
|
5
|
-
import { containers as y, basicFields as f, advancedFields as
|
|
6
|
-
import
|
|
7
|
-
import { LayoutTypeEnum as W } from "../constants/LayoutTypeEnum.js";
|
|
2
|
+
var b = (h, t, e) => t in h ? D(h, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : h[t] = e;
|
|
3
|
+
var d = (h, t, e) => b(h, typeof t != "symbol" ? t + "" : t, e);
|
|
4
|
+
import { deepClone as o, getDefaultFormConfig as c, overwriteObj as p, generateId as l } from "../../utils/util.js";
|
|
5
|
+
import { containers as y, basicFields as f, advancedFields as m, customFields as C } from "./widget-panel/widgetsConfig.js";
|
|
6
|
+
import u from "../../utils/event-bus.js";
|
|
8
7
|
class T {
|
|
9
8
|
constructor(t) {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
9
|
+
d(this, "widgetList", []);
|
|
10
|
+
d(this, "formConfig");
|
|
11
|
+
d(this, "selectedId", null);
|
|
12
|
+
d(this, "selectedWidget", null);
|
|
13
|
+
d(this, "selectedWidgetName", null);
|
|
14
|
+
d(this, "vueInstance");
|
|
15
|
+
d(this, "formWidget", null);
|
|
16
|
+
d(this, "cssClassList", []);
|
|
17
|
+
d(this, "historyData", {
|
|
19
18
|
index: -1,
|
|
20
19
|
maxStep: 20,
|
|
21
20
|
steps: []
|
|
22
21
|
});
|
|
23
|
-
this.vueInstance = t, this.
|
|
22
|
+
this.vueInstance = t, this.formConfig = o(c()), this.formConfig.layoutType || (this.formConfig.layoutType = "PC");
|
|
24
23
|
}
|
|
25
|
-
|
|
26
|
-
|
|
24
|
+
checkFieldMove(t) {
|
|
25
|
+
throw new Error("Method not implemented.");
|
|
27
26
|
}
|
|
28
27
|
emitEvent(t, e) {
|
|
29
|
-
|
|
28
|
+
u.$emit(t, e);
|
|
30
29
|
}
|
|
31
30
|
handleEvent(t, e) {
|
|
32
|
-
|
|
31
|
+
u.$on(t, (i) => e(i));
|
|
32
|
+
}
|
|
33
|
+
initDesigner(t) {
|
|
34
|
+
this.widgetList = [], this.formConfig = o(c()), t || this.initHistoryData();
|
|
33
35
|
}
|
|
34
36
|
clearDesigner(t) {
|
|
35
37
|
const e = this.widgetList.length === 0;
|
|
@@ -42,7 +44,7 @@ class T {
|
|
|
42
44
|
return this.formConfig.layoutType || "PC";
|
|
43
45
|
}
|
|
44
46
|
changeLayoutType(t) {
|
|
45
|
-
this.formConfig.layoutType = t
|
|
47
|
+
this.formConfig.layoutType = t;
|
|
46
48
|
}
|
|
47
49
|
getImportTemplate() {
|
|
48
50
|
return {
|
|
@@ -68,10 +70,10 @@ class T {
|
|
|
68
70
|
this.selectedId = null, this.selectedWidgetName = null, this.selectedWidget = null;
|
|
69
71
|
}
|
|
70
72
|
checkWidgetMove(t) {
|
|
71
|
-
var
|
|
72
|
-
if (!((
|
|
73
|
+
var g;
|
|
74
|
+
if (!((g = t.draggedContext) != null && g.element) || !t.to)
|
|
73
75
|
return !0;
|
|
74
|
-
const { category: e, type: i } = t.draggedContext.element, s = String(i), n = t.to.className,
|
|
76
|
+
const { category: e, type: i } = t.draggedContext.element, s = String(i), n = t.to.className, a = s === "vf-dialog" || s === "vf-drawer", r = [
|
|
75
77
|
// 子表单表格不允许容器类组件
|
|
76
78
|
{
|
|
77
79
|
condition: n === "sub-form-table" && e === "container",
|
|
@@ -84,32 +86,32 @@ class T {
|
|
|
84
86
|
},
|
|
85
87
|
// 对话框和抽屉的放置限制
|
|
86
88
|
{
|
|
87
|
-
condition: n === "vf-dialog-drop-zone" &&
|
|
89
|
+
condition: n === "vf-dialog-drop-zone" && a,
|
|
88
90
|
reason: "对话框放置区不允许嵌套对话框或抽屉"
|
|
89
91
|
},
|
|
90
92
|
{
|
|
91
|
-
condition: n === "vf-drawer-drop-zone" &&
|
|
93
|
+
condition: n === "vf-drawer-drop-zone" && a,
|
|
92
94
|
reason: "抽屉放置区不允许嵌套对话框或抽屉"
|
|
93
95
|
},
|
|
94
96
|
{
|
|
95
|
-
condition: n !== "form-widget-canvas" &&
|
|
97
|
+
condition: n !== "form-widget-canvas" && a,
|
|
96
98
|
reason: "对话框和抽屉只能拖入表单画布"
|
|
97
99
|
}
|
|
98
100
|
];
|
|
99
|
-
for (const w of
|
|
101
|
+
for (const w of r)
|
|
100
102
|
if (w.condition)
|
|
101
103
|
return !1;
|
|
102
104
|
return !0;
|
|
103
105
|
}
|
|
104
106
|
getContainerByType(t) {
|
|
105
|
-
const e = [...y, ...f, ...
|
|
107
|
+
const e = [...y, ...f, ...m, ...C];
|
|
106
108
|
let i = null;
|
|
107
109
|
return e.forEach((s) => {
|
|
108
110
|
s.category && s.type && s.type === t && (i = s);
|
|
109
111
|
}), i;
|
|
110
112
|
}
|
|
111
113
|
getFieldWidgetByType(t) {
|
|
112
|
-
const e = [...y, ...f, ...
|
|
114
|
+
const e = [...y, ...f, ...m, ...C];
|
|
113
115
|
let i = null;
|
|
114
116
|
return e.forEach((s) => {
|
|
115
117
|
!s.category && s.type && s.type === t && (i = s);
|
|
@@ -133,17 +135,25 @@ class T {
|
|
|
133
135
|
cloneGridCol(t, e) {
|
|
134
136
|
const i = o(this.getContainerByType("grid-col"));
|
|
135
137
|
i.options.span = t.options.span;
|
|
136
|
-
const s =
|
|
138
|
+
const s = l();
|
|
137
139
|
i.id = "grid-col-" + s, i.options.name = "gridCol" + s, e.cols && e.cols.push(i);
|
|
138
140
|
}
|
|
139
141
|
cloneContainer(t) {
|
|
140
|
-
var e;
|
|
142
|
+
var e, i;
|
|
141
143
|
if (t.type === "grid") {
|
|
142
|
-
const
|
|
143
|
-
return
|
|
144
|
-
const
|
|
145
|
-
|
|
146
|
-
}),
|
|
144
|
+
const s = o(this.getContainerByType("grid"));
|
|
145
|
+
return s.id = s.type + l(), s.options.name = s.id, (e = t.cols) == null || e.forEach((n) => {
|
|
146
|
+
const a = o(this.getContainerByType("grid-col")), r = l();
|
|
147
|
+
a.id = "grid-col-" + r, a.options.name = "gridCol" + r, a.options.span = n.options.span, s.cols.push(a);
|
|
148
|
+
}), s;
|
|
149
|
+
} else if (t.type === "table") {
|
|
150
|
+
const s = o(this.getContainerByType("table"));
|
|
151
|
+
return s.id = s.type + l(), s.options.name = s.id, (i = t.rows) == null || i.forEach((n) => {
|
|
152
|
+
const a = o(n);
|
|
153
|
+
a.id = "table-row-" + l(), a.cols.forEach((r) => {
|
|
154
|
+
r.id = "table-cell-" + l(), r.options.name = r.id, r.widgetList = [];
|
|
155
|
+
}), s.rows.push(a);
|
|
156
|
+
}), s;
|
|
147
157
|
} else
|
|
148
158
|
return null;
|
|
149
159
|
}
|
|
@@ -171,64 +181,56 @@ class T {
|
|
|
171
181
|
t.splice(e, 1), t.splice(e + 1, 0, i);
|
|
172
182
|
}
|
|
173
183
|
}
|
|
174
|
-
copyWidget(t) {
|
|
175
|
-
return t.category === "bi" ? this.copyBiWidget(t) : t.category === "container" ? this.copyNewContainerWidget(t) : this.copyNewFieldWidget(t);
|
|
176
|
-
}
|
|
177
184
|
copyNewFieldWidget(t) {
|
|
178
|
-
const e = o(t), i =
|
|
179
|
-
return e.id = i, e.options.name =
|
|
185
|
+
const e = o(t), i = l();
|
|
186
|
+
return e.id = e.type.replace(/-/g, "") + i, e.options.name = e.id, e.options.label = e.options.label || e.type.toLowerCase(), delete e.displayName, e;
|
|
180
187
|
}
|
|
181
188
|
copyNewContainerWidget(t) {
|
|
182
|
-
const e = o(t)
|
|
183
|
-
if (e.id =
|
|
184
|
-
let
|
|
185
|
-
|
|
189
|
+
const e = o(t);
|
|
190
|
+
if (e.id = e.type.replace(/-/g, "") + l(), e.options.name = e.id, e.type === "grid") {
|
|
191
|
+
let i = o(this.getContainerByType("grid-col")), s = l();
|
|
192
|
+
i.id = "grid-col-" + s, i.options.name = "gridCol" + s, e.cols = e.cols || [], e.cols.push(i), i = o(i), s = l(), i.id = "grid-col-" + s, i.options.name = "gridCol" + s, e.cols.push(i);
|
|
186
193
|
} else if (e.type === "tab") {
|
|
187
|
-
const
|
|
188
|
-
|
|
194
|
+
const i = o(this.getContainerByType("tab-pane"));
|
|
195
|
+
i.id = "tab-pane-" + l(), i.options.name = "tab1", i.options.label = "tab 1", e.tabs = e.tabs || [], e.tabs.push(i);
|
|
189
196
|
}
|
|
190
|
-
return delete e.displayName,
|
|
191
|
-
}
|
|
192
|
-
copyBiWidget(t) {
|
|
193
|
-
const e = o(t), i = this.generateWidgetId(e);
|
|
194
|
-
return e.id = i, e.options.name = i, e.options.label = e.options.label || e.type.toLowerCase(), e;
|
|
197
|
+
return delete e.displayName, e;
|
|
195
198
|
}
|
|
196
199
|
addWidget(t) {
|
|
197
|
-
|
|
198
|
-
t.category === "container" || t.category === "bi" ? e = this.addContainerByDbClick(t) : e = this.addFieldByDbClick(t), this.setSelected(e), this.emitHistoryChange();
|
|
200
|
+
t.category === "container" ? this.addContainerByDbClick(t) : this.addFieldByDbClick(t);
|
|
199
201
|
}
|
|
200
202
|
addContainerByDbClick(t) {
|
|
201
|
-
const e = this.
|
|
202
|
-
|
|
203
|
+
const e = this.copyNewContainerWidget(t);
|
|
204
|
+
this.widgetList.push(e), this.setSelected(e);
|
|
203
205
|
}
|
|
204
206
|
addFieldByDbClick(t) {
|
|
205
207
|
var i;
|
|
206
|
-
const e = this.
|
|
208
|
+
const e = this.copyNewFieldWidget(t);
|
|
207
209
|
if (this.selectedWidget && this.selectedWidget.type === "tab") {
|
|
208
210
|
let s = this.selectedWidget.tabs ? this.selectedWidget.tabs[0] : null;
|
|
209
211
|
(i = this.selectedWidget.tabs) == null || i.forEach((n) => {
|
|
210
212
|
n.options.active && (s = n);
|
|
211
213
|
}), s && s.widgetList && s.widgetList.push(e);
|
|
212
214
|
} else this.selectedWidget && this.selectedWidget.widgetList ? this.selectedWidget.widgetList.push(e) : this.widgetList.push(e);
|
|
213
|
-
|
|
215
|
+
this.setSelected(e), this.emitHistoryChange();
|
|
214
216
|
}
|
|
215
217
|
deleteColOfGrid(t, e) {
|
|
216
218
|
t && t.cols && t.cols.splice(e, 1);
|
|
217
219
|
}
|
|
218
220
|
addNewColOfGrid(t) {
|
|
219
|
-
var n,
|
|
220
|
-
const e = t.cols, i = o(this.getContainerByType("grid-col")), s =
|
|
221
|
-
if (i.id = s, i.options.name = s, e && e.length > 0) {
|
|
222
|
-
let
|
|
223
|
-
e.forEach((
|
|
224
|
-
|
|
225
|
-
}),
|
|
221
|
+
var n, a;
|
|
222
|
+
const e = t.cols, i = o(this.getContainerByType("grid-col")), s = l();
|
|
223
|
+
if (i.id = "grid-col-" + s, i.options.name = "gridCol" + s, e && e.length > 0) {
|
|
224
|
+
let r = 0;
|
|
225
|
+
e.forEach((g) => {
|
|
226
|
+
r += g.options.span || 0;
|
|
227
|
+
}), r >= 24 ? (console.log("列栅格之和超出24"), (n = t.cols) == null || n.push(i)) : (i.options.span = 24 - r > 12 ? 12 : 24 - r, (a = t.cols) == null || a.push(i));
|
|
226
228
|
} else
|
|
227
229
|
t.cols = [i];
|
|
228
230
|
}
|
|
229
231
|
addTabPaneOfTabs(t) {
|
|
230
|
-
const e = t.tabs, i = o(this.getContainerByType("tab-pane"))
|
|
231
|
-
i.id =
|
|
232
|
+
const e = t.tabs, i = o(this.getContainerByType("tab-pane"));
|
|
233
|
+
i.id = "tab-pane-" + l(), i.options.name = i.id, i.options.label = "tab " + (((e == null ? void 0 : e.length) || 0) + 1), e == null || e.push(i);
|
|
232
234
|
}
|
|
233
235
|
deleteTabPaneOfTabs(t, e) {
|
|
234
236
|
var i;
|
|
@@ -240,6 +242,9 @@ class T {
|
|
|
240
242
|
getCssClassList() {
|
|
241
243
|
return this.cssClassList;
|
|
242
244
|
}
|
|
245
|
+
registerFormWidget(t) {
|
|
246
|
+
this.formWidget = t;
|
|
247
|
+
}
|
|
243
248
|
initHistoryData() {
|
|
244
249
|
this.loadFormContentFromStorage(), this.historyData.index++, this.historyData.steps[this.historyData.index] = {
|
|
245
250
|
widgetList: o(this.widgetList),
|
|
@@ -276,11 +281,11 @@ class T {
|
|
|
276
281
|
loadFormContentFromStorage() {
|
|
277
282
|
}
|
|
278
283
|
}
|
|
279
|
-
function
|
|
280
|
-
return new T(
|
|
284
|
+
function x(h) {
|
|
285
|
+
return new T(h);
|
|
281
286
|
}
|
|
282
287
|
export {
|
|
283
288
|
T as Designer,
|
|
284
|
-
|
|
289
|
+
x as createDesigner
|
|
285
290
|
};
|
|
286
291
|
//# sourceMappingURL=designer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"designer.js","sources":["../../../../src/components/form-designer/designer.ts"],"sourcesContent":["import { deepClone, generateId, getDefaultFormConfig, overwriteObj } from '@/utils/util';\nimport {\n containers,\n advancedFields,\n basicFields,\n customFields\n} from '@/components/form-designer/widget-panel/widgetsConfig';\nimport { FormConfig, Widget } from '@/types/schema';\nimport { FormDesigner, FormWidget, LayoutType, HistoryData } from '@/types/designer';\nimport eventBus from '@/utils/event-bus';\n\nexport class Designer implements FormDesigner {\n widgetList: Widget[] = [];\n formConfig: FormConfig;\n selectedId: string | null = null;\n selectedWidget: Widget | null = null;\n selectedWidgetName: string | null = null;\n vueInstance: any;\n formWidget: FormWidget | null = null;\n cssClassList: any[] = [];\n historyData: HistoryData = {\n index: -1,\n maxStep: 20,\n steps: []\n };\n\n constructor(vueInstance: any) {\n this.vueInstance = vueInstance;\n this.formConfig = deepClone(getDefaultFormConfig());\n if (!this.formConfig.layoutType) {\n this.formConfig.layoutType = 'PC';\n }\n }\n checkFieldMove(evt: any): boolean {\n throw new Error('Method not implemented.');\n }\n emitEvent(evtName: string, evtData: any): void {\n eventBus.$emit(evtName, evtData);\n }\n handleEvent(evtName: string, callback: (data: any) => void): void {\n eventBus.$on(evtName, (data: any) => callback(data));\n }\n\n initDesigner(resetFormJson?: boolean) {\n this.widgetList = [];\n this.formConfig = deepClone(getDefaultFormConfig());\n\n if (!resetFormJson) {\n this.initHistoryData();\n }\n }\n\n clearDesigner(skipHistoryChange?: boolean) {\n const emptyWidgetListFlag = this.widgetList.length === 0;\n this.widgetList = [];\n this.selectedId = null;\n this.selectedWidgetName = null;\n this.selectedWidget = null;\n overwriteObj(this.formConfig, getDefaultFormConfig());\n\n if (skipHistoryChange) {\n // Do nothing\n } else if (!emptyWidgetListFlag) {\n this.emitHistoryChange();\n } else {\n this.saveCurrentHistoryStep();\n }\n }\n\n loadPresetCssCode(preCssCode: string) {\n if (this.formConfig.cssCode === '' && !!preCssCode) {\n this.formConfig.cssCode = preCssCode;\n }\n }\n\n getLayoutType(): LayoutType {\n return this.formConfig.layoutType || 'PC';\n }\n\n changeLayoutType(newType: LayoutType) {\n this.formConfig.layoutType = newType;\n }\n\n getImportTemplate() {\n return {\n widgetList: [],\n formConfig: deepClone(getDefaultFormConfig())\n };\n }\n\n loadFormJson(formJson: any) {\n let modifiedFlag = false;\n\n if (!!formJson && !!formJson.widgetList) {\n this.widgetList = formJson.widgetList;\n modifiedFlag = true;\n }\n if (!!formJson && !!formJson.formConfig) {\n overwriteObj(this.formConfig, formJson.formConfig);\n modifiedFlag = true;\n }\n return modifiedFlag;\n }\n\n setSelected(selected: Widget | null) {\n if (!selected) {\n this.clearSelected();\n return;\n }\n\n this.selectedWidget = selected;\n if (selected.id) {\n this.selectedId = selected.id;\n this.selectedWidgetName = selected.options.name;\n }\n }\n\n updateSelectedWidgetNameAndLabel(selectedWidget: Widget, newName: string, newLabel: string) {\n this.selectedWidgetName = newName;\n if (!!newLabel && Object.keys(selectedWidget.options).indexOf('label') > -1) {\n selectedWidget.options.label = newLabel;\n }\n }\n\n clearSelected() {\n this.selectedId = null;\n this.selectedWidgetName = null;\n this.selectedWidget = null;\n }\n\n checkWidgetMove(evt: any) {\n // 早期返回:如果没有拖拽上下文或元素,允许移动\n if (!evt.draggedContext?.element || !evt.to) {\n return true;\n }\n\n const { category: wgCategory, type } = evt.draggedContext.element;\n const wgType = String(type);\n const targetClassName = evt.to.className;\n\n // 提取重复的判断逻辑\n const isDialogOrDrawer = wgType === 'vf-dialog' || wgType === 'vf-drawer';\n\n // 定义不允许的拖拽规则\n const disallowedRules = [\n // 子表单表格不允许容器类组件\n {\n condition: targetClassName === 'sub-form-table' && wgCategory === 'container',\n reason: '子表单表格不允许拖入容器组件'\n },\n // 网格子表单只允许 grid 类型\n {\n condition: targetClassName === 'grid-sub-form' && wgType !== 'grid',\n reason: '网格子表单只允许拖入 grid 组件'\n },\n // 对话框和抽屉的放置限制\n {\n condition: targetClassName === 'vf-dialog-drop-zone' && isDialogOrDrawer,\n reason: '对话框放置区不允许嵌套对话框或抽屉'\n },\n {\n condition: targetClassName === 'vf-drawer-drop-zone' && isDialogOrDrawer,\n reason: '抽屉放置区不允许嵌套对话框或抽屉'\n },\n {\n condition: targetClassName !== 'form-widget-canvas' && isDialogOrDrawer,\n reason: '对话框和抽屉只能拖入表单画布'\n }\n ];\n\n // 检查是否违反任何规则\n for (const rule of disallowedRules) {\n if (rule.condition) {\n return false;\n }\n }\n\n return true;\n }\n\n getContainerByType(typeName: string): Widget | null {\n const allWidgets = [...containers, ...basicFields, ...advancedFields, ...customFields];\n let foundCon: Widget | null = null;\n allWidgets.forEach((con: any) => {\n if (!!con.category && !!con.type && con.type === typeName) {\n foundCon = con;\n }\n });\n\n return foundCon;\n }\n\n getFieldWidgetByType(typeName: string): Widget | null {\n const allWidgets = [...containers, ...basicFields, ...advancedFields, ...customFields];\n let foundWidget: Widget | null = null;\n allWidgets.forEach((widget: any) => {\n if (!widget.category && !!widget.type && widget.type === typeName) {\n foundWidget = widget;\n }\n });\n\n return foundWidget;\n }\n\n hasConfig(widget: Widget, configName: string) {\n let originalWidget: Widget | null = null;\n if (!!widget.category) {\n originalWidget = this.getContainerByType(widget.type);\n } else {\n originalWidget = this.getFieldWidgetByType(widget.type);\n }\n\n if (!originalWidget || !originalWidget.options) {\n return false;\n }\n\n return Object.keys(originalWidget.options).indexOf(configName) > -1;\n }\n\n upgradeWidgetConfig(oldWidget: Widget) {\n let newWidget: Widget | null = null;\n if (!!oldWidget.category) {\n newWidget = this.getContainerByType(oldWidget.type);\n } else {\n newWidget = this.getFieldWidgetByType(oldWidget.type);\n }\n\n if (!newWidget || !newWidget.options) {\n return;\n }\n\n Object.keys(newWidget.options).forEach(ck => {\n if (!oldWidget.hasOwnProperty(ck)) {\n oldWidget.options[ck] = deepClone(newWidget!.options[ck]);\n }\n });\n }\n\n upgradeFormConfig(oldFormConfig: FormConfig) {\n Object.keys(this.formConfig).forEach(fc => {\n if (!oldFormConfig.hasOwnProperty(fc)) {\n oldFormConfig[fc] = deepClone(this.formConfig[fc]);\n }\n });\n }\n\n cloneGridCol(widget: Widget, parentWidget: Widget) {\n const newGridCol = deepClone(this.getContainerByType('grid-col'));\n newGridCol.options.span = widget.options.span;\n const tmpId = generateId();\n newGridCol.id = 'grid-col-' + tmpId;\n newGridCol.options.name = 'gridCol' + tmpId;\n\n if (parentWidget.cols) {\n parentWidget.cols.push(newGridCol);\n }\n }\n\n cloneContainer(containWidget: Widget) {\n if (containWidget.type === 'grid') {\n const newGrid = deepClone(this.getContainerByType('grid'));\n newGrid.id = newGrid.type + generateId();\n newGrid.options.name = newGrid.id;\n containWidget.cols?.forEach((gridCol: Widget) => {\n const newGridCol = deepClone(this.getContainerByType('grid-col'));\n const tmpId = generateId();\n newGridCol.id = 'grid-col-' + tmpId;\n newGridCol.options.name = 'gridCol' + tmpId;\n newGridCol.options.span = gridCol.options.span;\n newGrid.cols.push(newGridCol);\n });\n\n return newGrid;\n } else if (containWidget.type === 'table') {\n const newTable = deepClone(this.getContainerByType('table'));\n newTable.id = newTable.type + generateId();\n newTable.options.name = newTable.id;\n containWidget.rows?.forEach((tRow: any) => {\n const newRow = deepClone(tRow);\n newRow.id = 'table-row-' + generateId();\n newRow.cols.forEach((col: Widget) => {\n col.id = 'table-cell-' + generateId();\n col.options.name = col.id;\n col.widgetList = [];\n });\n newTable.rows.push(newRow);\n });\n\n return newTable;\n } else {\n return null;\n }\n }\n\n moveUpWidget(parentList: Widget[], indexOfParentList: number) {\n if (parentList?.length) {\n if (indexOfParentList === 0) {\n this.vueInstance.$message.error(\n this.vueInstance.i18nt('designer.hint.moveUpFirstChildHint')\n );\n return;\n }\n\n const tempWidget = parentList[indexOfParentList];\n parentList.splice(indexOfParentList, 1);\n parentList.splice(indexOfParentList - 1, 0, tempWidget);\n }\n }\n\n moveDownWidget(parentList: Widget[], indexOfParentList: number) {\n if (parentList?.length) {\n if (indexOfParentList === parentList.length - 1) {\n this.vueInstance.$message.error(\n this.vueInstance.i18nt('designer.hint.moveDownLastChildHint')\n );\n return;\n }\n\n const tempWidget = parentList[indexOfParentList];\n parentList.splice(indexOfParentList, 1);\n parentList.splice(indexOfParentList + 1, 0, tempWidget);\n }\n }\n\n copyNewFieldWidget(origin: Widget) {\n const newWidget = deepClone(origin);\n const tempId = generateId();\n newWidget.id = newWidget.type.replace(/-/g, '') + tempId;\n newWidget.options.name = newWidget.id;\n newWidget.options.label = newWidget.options.label || newWidget.type.toLowerCase();\n\n delete newWidget.displayName;\n return newWidget;\n }\n\n copyNewContainerWidget(origin: Widget) {\n const newCon = deepClone(origin);\n newCon.id = newCon.type.replace(/-/g, '') + generateId();\n newCon.options.name = newCon.id;\n if (newCon.type === 'grid') {\n let newCol = deepClone(this.getContainerByType('grid-col'));\n let tmpId = generateId();\n newCol.id = 'grid-col-' + tmpId;\n newCol.options.name = 'gridCol' + tmpId;\n newCon.cols = newCon.cols || [];\n newCon.cols.push(newCol);\n\n newCol = deepClone(newCol);\n tmpId = generateId();\n newCol.id = 'grid-col-' + tmpId;\n newCol.options.name = 'gridCol' + tmpId;\n newCon.cols.push(newCol);\n } else if (newCon.type === 'tab') {\n const newTabPane = deepClone(this.getContainerByType('tab-pane'));\n newTabPane.id = 'tab-pane-' + generateId();\n newTabPane.options.name = 'tab1';\n newTabPane.options.label = 'tab 1';\n newCon.tabs = newCon.tabs || [];\n newCon.tabs.push(newTabPane);\n }\n delete newCon.displayName;\n return newCon;\n }\n\n addWidget(widget: Widget) {\n if (widget.category === 'container') {\n this.addContainerByDbClick(widget);\n } else {\n this.addFieldByDbClick(widget);\n }\n }\n\n addContainerByDbClick(container: Widget) {\n const newCon = this.copyNewContainerWidget(container);\n this.widgetList.push(newCon);\n this.setSelected(newCon);\n }\n\n addFieldByDbClick(widget: Widget) {\n const newWidget = this.copyNewFieldWidget(widget);\n if (!!this.selectedWidget && this.selectedWidget.type === 'tab') {\n let activeTab = this.selectedWidget.tabs ? this.selectedWidget.tabs[0] : null;\n this.selectedWidget.tabs?.forEach((tabPane: Widget) => {\n if (!!tabPane.options.active) {\n activeTab = tabPane;\n }\n });\n\n if (activeTab && activeTab.widgetList) {\n activeTab.widgetList.push(newWidget);\n }\n } else if (!!this.selectedWidget && !!this.selectedWidget.widgetList) {\n this.selectedWidget.widgetList.push(newWidget);\n } else {\n this.widgetList.push(newWidget);\n }\n\n this.setSelected(newWidget);\n this.emitHistoryChange();\n }\n\n deleteColOfGrid(gridWidget: Widget, colIdx: number) {\n if (!!gridWidget && !!gridWidget.cols) {\n gridWidget.cols.splice(colIdx, 1);\n }\n }\n\n addNewColOfGrid(gridWidget: Widget) {\n const cols = gridWidget.cols;\n const newGridCol = deepClone(this.getContainerByType('grid-col'));\n const tmpId = generateId();\n newGridCol.id = 'grid-col-' + tmpId;\n newGridCol.options.name = 'gridCol' + tmpId;\n if (!!cols && cols.length > 0) {\n let spanSum = 0;\n cols.forEach((col: Widget) => {\n spanSum += col.options.span || 0;\n });\n\n if (spanSum >= 24) {\n console.log('列栅格之和超出24');\n gridWidget.cols?.push(newGridCol);\n } else {\n newGridCol.options.span = 24 - spanSum > 12 ? 12 : 24 - spanSum;\n gridWidget.cols?.push(newGridCol);\n }\n } else {\n gridWidget.cols = [newGridCol];\n }\n }\n\n addTabPaneOfTabs(tabsWidget: Widget) {\n const tabPanes = tabsWidget.tabs;\n const newTabPane = deepClone(this.getContainerByType('tab-pane'));\n newTabPane.id = 'tab-pane-' + generateId();\n newTabPane.options.name = newTabPane.id;\n newTabPane.options.label = 'tab ' + ((tabPanes?.length || 0) + 1);\n tabPanes?.push(newTabPane);\n }\n\n deleteTabPaneOfTabs(tabsWidget: Widget, tpIdx: number) {\n tabsWidget.tabs?.splice(tpIdx, 1);\n }\n\n setCssClassList(cssClassList: any[]) {\n this.cssClassList = cssClassList;\n }\n\n getCssClassList() {\n return this.cssClassList;\n }\n\n registerFormWidget(formWidget: FormWidget) {\n this.formWidget = formWidget;\n }\n\n initHistoryData() {\n this.loadFormContentFromStorage();\n this.historyData.index++;\n this.historyData.steps[this.historyData.index] = {\n widgetList: deepClone(this.widgetList),\n formConfig: deepClone(this.formConfig)\n };\n }\n\n emitHistoryChange() {\n if (this.historyData.index === this.historyData.maxStep - 1) {\n this.historyData.steps.shift();\n } else {\n this.historyData.index++;\n }\n\n this.historyData.steps[this.historyData.index] = {\n widgetList: deepClone(this.widgetList),\n formConfig: deepClone(this.formConfig)\n };\n\n this.saveFormContentToStorage();\n\n if (this.historyData.index < this.historyData.steps.length - 1) {\n this.historyData.steps = this.historyData.steps.slice(0, this.historyData.index + 1);\n }\n }\n\n saveCurrentHistoryStep() {\n this.historyData.steps[this.historyData.index] = deepClone({\n widgetList: this.widgetList,\n formConfig: this.formConfig\n });\n\n this.saveFormContentToStorage();\n }\n\n undoHistoryStep() {\n if (this.historyData.index !== 0) {\n this.historyData.index--;\n }\n\n this.widgetList = deepClone(this.historyData.steps[this.historyData.index].widgetList);\n this.formConfig = deepClone(this.historyData.steps[this.historyData.index].formConfig);\n }\n\n redoHistoryStep() {\n if (this.historyData.index !== this.historyData.steps.length - 1) {\n this.historyData.index++;\n }\n\n this.widgetList = deepClone(this.historyData.steps[this.historyData.index].widgetList);\n this.formConfig = deepClone(this.historyData.steps[this.historyData.index].formConfig);\n }\n\n undoEnabled() {\n return this.historyData.index > 0 && this.historyData.steps.length > 0;\n }\n\n redoEnabled() {\n return this.historyData.index < this.historyData.steps.length - 1;\n }\n\n saveFormContentToStorage() {\n window.localStorage.setItem('widget__list__backup', JSON.stringify(this.widgetList));\n window.localStorage.setItem('form__config__backup', JSON.stringify(this.formConfig));\n }\n\n loadFormContentFromStorage() {\n const widgetListBackup = ''; //window.localStorage.getItem('widget__list__backup');\n if (!!widgetListBackup) {\n this.widgetList = JSON.parse(widgetListBackup);\n }\n\n const formConfigBackup = ''; //window.localStorage.getItem('form__config__backup');\n if (!!formConfigBackup) {\n overwriteObj(this.formConfig, JSON.parse(formConfigBackup));\n }\n }\n}\n\nexport function createDesigner(vueInstance: any): Designer {\n return new Designer(vueInstance);\n}\n"],"names":["Designer","vueInstance","__publicField","deepClone","getDefaultFormConfig","evt","evtName","evtData","eventBus","callback","data","resetFormJson","skipHistoryChange","emptyWidgetListFlag","overwriteObj","preCssCode","newType","formJson","modifiedFlag","selected","selectedWidget","newName","newLabel","_a","wgCategory","type","wgType","targetClassName","isDialogOrDrawer","disallowedRules","rule","typeName","allWidgets","containers","basicFields","advancedFields","customFields","foundCon","con","foundWidget","widget","configName","originalWidget","oldWidget","newWidget","ck","oldFormConfig","fc","parentWidget","newGridCol","tmpId","generateId","containWidget","newGrid","gridCol","newTable","_b","tRow","newRow","col","parentList","indexOfParentList","tempWidget","origin","tempId","newCon","newCol","newTabPane","container","activeTab","tabPane","gridWidget","colIdx","cols","spanSum","tabsWidget","tabPanes","tpIdx","cssClassList","formWidget","createDesigner"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { defineComponent as g, inject as l, ref as m, createBlock as n, openBlock as i, unref as o, mergeProps as c, withCtx as u, createElementVNode as f, resolveDynamicComponent as h } from "vue";
|
|
2
|
-
import { getWidget as W } from "
|
|
2
|
+
import { getWidget as W } from "./useFormDesigner.js";
|
|
3
3
|
import v from "../../../lib/vuedraggable/src/vuedraggable.js";
|
|
4
4
|
const L = { class: "transition-group-el" }, D = /* @__PURE__ */ g({
|
|
5
5
|
name: "RenderDesignerWigetList",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RenderDesignerWigetList.vue.js","sources":["../../../../../src/components/form-designer/form-widget/RenderDesignerWigetList.vue"],"sourcesContent":["<template>\n <Draggable\n :list=\"list\"\n item-key=\"id\"\n v-bind=\"{ group: 'dragGroup', ghostClass: 'ghost', animation: 300 }\"\n tag=\"transition-group\"\n :component-data=\"{ name: 'fade' }\"\n handle=\".drag-handler\"\n @add=\"add\"\n @update=\"update\"\n :move=\"checkMove\"\n >\n <template #item=\"{ element: widget, index }\">\n <div class=\"transition-group-el\">\n <component\n :is=\"getWidget(widget)\"\n :parentList=\"props.list\"\n :indexOfParentList=\"index\"\n :parentWidget=\"parentWidget\"\n :designState=\"true\"\n :widget=\"widget\"\n :field=\"widget\"\n />\n </div>\n </template>\n </Draggable>\n</template>\n\n<script lang=\"ts\" setup>\n import { getWidget } from '@/
|
|
1
|
+
{"version":3,"file":"RenderDesignerWigetList.vue.js","sources":["../../../../../src/components/form-designer/form-widget/RenderDesignerWigetList.vue"],"sourcesContent":["<template>\n <Draggable\n :list=\"list\"\n item-key=\"id\"\n v-bind=\"{ group: 'dragGroup', ghostClass: 'ghost', animation: 300 }\"\n tag=\"transition-group\"\n :component-data=\"{ name: 'fade' }\"\n handle=\".drag-handler\"\n @add=\"add\"\n @update=\"update\"\n :move=\"checkMove\"\n >\n <template #item=\"{ element: widget, index }\">\n <div class=\"transition-group-el\">\n <component\n :is=\"getWidget(widget)\"\n :parentList=\"props.list\"\n :indexOfParentList=\"index\"\n :parentWidget=\"parentWidget\"\n :designState=\"true\"\n :widget=\"widget\"\n :field=\"widget\"\n />\n </div>\n </template>\n </Draggable>\n</template>\n\n<script lang=\"ts\" setup>\n import { getWidget } from '@/components/form-designer/form-widget/useFormDesigner';\n import { Widget } from '@/types/schema';\n import Draggable from '@/lib/vuedraggable/src/vuedraggable';\n import { FormDesigner } from '@/types/designer';\n import { inject, ref } from 'vue';\n\n defineOptions({\n name: 'RenderDesignerWigetList'\n });\n\n const props = withDefaults(\n defineProps<{\n parentWidget: Widget | FormDesigner | null;\n list: Widget[];\n end?: (e: any) => void;\n add?: (e: any) => void;\n update?: (e: any) => void;\n }>(),\n {\n add: () => {},\n update: () => {}\n }\n );\n\n const designer = inject<Ref<FormDesigner>>('designer', ref({} as FormDesigner));\n\n const checkMove = evt => {\n return designer.value.checkWidgetMove(evt);\n };\n</script>\n"],"names":["props","__props","designer","inject","ref","checkMove","evt","_openBlock","_createBlock","_unref","_mergeProps","list","add","update","_withCtx","widget","index","_createElementVNode","_hoisted_1","_resolveDynamicComponent","getWidget","parentWidget"],"mappings":";;;;;;;;;;;;;;;;AAuCI,UAAMA,IAAQC,GAcRC,IAAWC,EAA0B,YAAYC,EAAI,CAAA,CAAkB,CAAC,GAExEC,IAAY,CAAAC,MACPJ,EAAS,MAAM,gBAAgBI,CAAG;sBAvD7CC,KAAAC,EAwBYC,MAxBZC,EAwBY;AAAA,MAvBP,MAAMC,EAAAA;AAAAA,MACP,YAAS;AAAA,IAAA,GACD,EAAA,OAAA,aAAA,YAAA,SAAA,WAAA,OAA2D;AAAA,MACnE,KAAI;AAAA,MACH,kBAAgB,EAAA,MAAA,OAAA;AAAA,MACjB,QAAO;AAAA,MACN,OAAKC,EAAAA;AAAAA,MACL,UAAQC,EAAAA;AAAAA,MACR,MAAMR;AAAA,IAAA;MAEI,MAAIS,EACX,CAUM,EAAA,SAXkBC,GAAQ,OAAAC,QAAK;AAAA,QACrCC,EAUM,OAVNC,GAUM;AAAA,gBATFV,EAQEW,EAPOV,EAAAW,CAAA,EAAUL,CAAM,CAAA,GAAA;AAAA,YACpB,YAAYf,EAAM;AAAA,YAClB,mBAAmBgB;AAAA,YACnB,cAAcK,EAAAA;AAAAA,YACd,aAAa;AAAA,YACb,QAAAN;AAAA,YACA,OAAOA;AAAA,UAAA;;;;;;;"}
|