@kp-ui/lowcode 2.15.0-beta.6 → 2.15.0-beta.7
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/package.json +6 -2
- package/src/components/FormRender/useFormContext.js +15 -15
- package/src/components/FormRender/useFormContext.js.map +1 -1
- package/src/components/bi-widget/echartBar/echart-bar-widget.vue.js +8 -0
- package/src/components/bi-widget/echartBar/echart-bar-widget.vue.js.map +1 -0
- package/src/components/bi-widget/echartBar/echart-bar-widget.vue2.js +43 -0
- package/src/components/bi-widget/echartBar/echart-bar-widget.vue2.js.map +1 -0
- package/src/components/bi-widget/echartBar/echart-bar.js +35 -0
- package/src/components/bi-widget/echartBar/echart-bar.js.map +1 -0
- package/src/components/bi-widget/index.js +13 -0
- package/src/components/bi-widget/index.js.map +1 -0
- package/src/components/{form-designer/designer.js → designer.js} +71 -76
- package/src/components/designer.js.map +1 -0
- package/src/components/form-designer/form-widget/RenderDesignerPC.vue.js +26 -0
- package/src/components/form-designer/form-widget/RenderDesignerPC.vue.js.map +1 -0
- package/src/components/form-designer/form-widget/RenderDesignerPC.vue2.js +5 -0
- package/src/components/form-designer/form-widget/RenderDesignerPC.vue2.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/bi/RenderDesignerBI.vue.js +8 -0
- package/src/components/form-designer/form-widget/bi/RenderDesignerBI.vue.js.map +1 -0
- package/src/components/form-designer/form-widget/bi/RenderDesignerBI.vue2.js +68 -0
- package/src/components/form-designer/form-widget/bi/RenderDesignerBI.vue2.js.map +1 -0
- package/src/components/form-designer/form-widget/bi/RenderDesignerBIWigetList.vue.js +8 -0
- package/src/components/form-designer/form-widget/bi/RenderDesignerBIWigetList.vue.js.map +1 -0
- package/src/components/form-designer/form-widget/bi/RenderDesignerBIWigetList.vue2.js +136 -0
- package/src/components/form-designer/form-widget/bi/RenderDesignerBIWigetList.vue2.js.map +1 -0
- package/src/components/form-designer/form-widget/bi/WidgetContextMenu.vue.js +8 -0
- package/src/components/form-designer/form-widget/bi/WidgetContextMenu.vue.js.map +1 -0
- package/src/components/form-designer/form-widget/bi/WidgetContextMenu.vue2.js +153 -0
- package/src/components/form-designer/form-widget/bi/WidgetContextMenu.vue2.js.map +1 -0
- package/src/components/form-designer/form-widget/bi/useRuler.js +66 -0
- package/src/components/form-designer/form-widget/bi/useRuler.js.map +1 -0
- 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 +24 -21
- 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-collapse-widget.vue.js +2 -2
- package/src/components/form-designer/form-widget/container-widget/vf-collapse-widget.vue2.js +36 -34
- package/src/components/form-designer/form-widget/container-widget/vf-collapse-widget.vue2.js.map +1 -1
- package/src/components/form-designer/form-widget/field-widget/form-item-wrapper.vue.js +1 -1
- package/src/components/form-designer/form-widget/field-widget/form-item-wrapper.vue2.js +1 -1
- 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/useField.js +117 -117
- 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 +47 -56
- package/src/components/form-designer/form-widget/index.vue2.js.map +1 -1
- package/src/components/form-designer/index.vue.js +74 -77
- package/src/components/form-designer/index.vue.js.map +1 -1
- package/src/components/form-designer/setting-panel/form-setting.vue.js +1 -1
- package/src/components/form-designer/setting-panel/form-setting.vue2.js +1 -1
- 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/panel/PanelItemDrag.vue.js +51 -0
- package/src/components/form-designer/setting-panel/panel/PanelItemDrag.vue.js.map +1 -0
- package/src/components/form-designer/setting-panel/panel/PanelItemDragForBI.vue.js +51 -0
- package/src/components/form-designer/setting-panel/panel/PanelItemDragForBI.vue.js.map +1 -0
- package/src/components/form-designer/setting-panel/panel/PanelItemDragForBI.vue2.js +5 -0
- package/src/components/form-designer/setting-panel/panel/PanelItemDragForBI.vue2.js.map +1 -0
- 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 +201 -255
- 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/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-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-vf-dialog/height-editor.vue2.js.map +1 -1
- 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/dsEnabled-editor.vue.js +5 -0
- package/src/components/form-designer/setting-panel/property-editor/dsEnabled-editor.vue.js.map +1 -0
- package/src/components/form-designer/setting-panel/property-editor/dsEnabled-editor.vue2.js +71 -0
- package/src/components/form-designer/setting-panel/property-editor/dsEnabled-editor.vue2.js.map +1 -0
- package/src/components/form-designer/setting-panel/property-editor/echart-bar-editor.vue.js +5 -0
- package/src/components/form-designer/setting-panel/property-editor/echart-bar-editor.vue.js.map +1 -0
- package/src/components/form-designer/setting-panel/property-editor/echart-bar-editor.vue2.js +81 -0
- package/src/components/form-designer/setting-panel/property-editor/echart-bar-editor.vue2.js.map +1 -0
- 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 +54 -54
- package/src/components/form-designer/setting-panel/property-editor/index.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 -10
- 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 +137 -177
- package/src/components/form-designer/toolbar-panel/index.vue2.js.map +1 -1
- package/src/components/form-designer/widget-panel/containers/vf-box.js +4 -1
- package/src/components/form-designer/widget-panel/containers/vf-box.js.map +1 -1
- package/src/components/form-designer/widget-panel/containers/vf-collapse.js +6 -6
- package/src/components/form-designer/widget-panel/containers/vf-collapse.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 +74 -34
- package/src/components/form-designer/widget-panel/index.vue2.js.map +1 -1
- package/src/components/form-render/container-items/vf-box-widget.vue.js +2 -2
- package/src/components/form-render/container-items/vf-box-widget.vue2.js +19 -17
- package/src/components/form-render/container-items/vf-box-widget.vue2.js.map +1 -1
- package/src/components/form-render/container-items/vf-collapse-widget.vue.js +1 -1
- package/src/components/form-render/container-items/vf-collapse-widget.vue2.js +24 -22
- package/src/components/form-render/container-items/vf-collapse-widget.vue2.js.map +1 -1
- package/src/components/form-render/dynamic-dialog.vue.js +1 -0
- package/src/components/form-render/dynamic-dialog.vue.js.map +1 -1
- package/src/constants/EditorTypeEnum.js +1 -1
- package/src/constants/EditorTypeEnum.js.map +1 -1
- package/src/constants/LayoutTypeEnum.js +5 -0
- package/src/constants/LayoutTypeEnum.js.map +1 -0
- package/src/constants/WidgetTypeEnum.js +4 -3
- package/src/constants/WidgetTypeEnum.js.map +1 -1
- package/src/hooks/useDesigner.js +51 -0
- package/src/hooks/useDesigner.js.map +1 -0
- package/src/lang/en-US.js +1 -1
- package/src/lang/en-US.js.map +1 -1
- package/src/lang/zh-CN.js +5 -3
- package/src/lang/zh-CN.js.map +1 -1
- package/src/utils/util.js +1 -1
- package/src/utils/util.js.map +1 -1
- package/stats.html +1 -1
- package/styles/style.css +1 -1
- package/src/components/form-designer/designer.js.map +0 -1
- package/src/components/form-designer/form-widget/field-widget/bpmn-editor-widget copy.vue.js +0 -8
- package/src/components/form-designer/form-widget/field-widget/bpmn-editor-widget copy.vue.js.map +0 -1
- package/src/components/form-designer/form-widget/field-widget/bpmn-editor-widget copy.vue2.js +0 -58
- package/src/components/form-designer/form-widget/field-widget/bpmn-editor-widget copy.vue2.js.map +0 -1
- package/src/components/form-designer/form-widget/useFormDesigner.js +0 -34
- package/src/components/form-designer/form-widget/useFormDesigner.js.map +0 -1
- package/src/components/form-designer/setting-panel/property-editor/container-table-cell/cellHeight-editor.vue.js +0 -32
- package/src/components/form-designer/setting-panel/property-editor/container-table-cell/cellHeight-editor.vue.js.map +0 -1
- package/src/components/form-designer/setting-panel/property-editor/container-table-cell/cellWidth-editor.vue.js +0 -32
- package/src/components/form-designer/setting-panel/property-editor/container-table-cell/cellWidth-editor.vue.js.map +0 -1
- package/src/components/form-designer/widget-panel/PanelItemDrag.vue.js +0 -50
- package/src/components/form-designer/widget-panel/PanelItemDrag.vue.js.map +0 -1
- /package/src/components/form-designer/{widget-panel → setting-panel/panel}/PanelItemDrag.vue2.js +0 -0
- /package/src/components/form-designer/{widget-panel → setting-panel/panel}/PanelItemDrag.vue2.js.map +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"designer.js","sources":["../../../src/components/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, LayoutType, HistoryData } from '@/types/designer';\nimport eventBus from '@/utils/event-bus';\nimport { LayoutTypeEnum } from '@/constants/LayoutTypeEnum';\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 cssClassList: any[] = [];\n layoutType: LayoutType = 'PC';\n historyData: HistoryData = {\n index: -1,\n maxStep: 20,\n steps: []\n };\n\n constructor(vueInstance: any) {\n this.vueInstance = vueInstance;\n this.widgetList = [];\n this.formConfig = deepClone(getDefaultFormConfig());\n if (!this.formConfig.layoutType) {\n this.formConfig.layoutType = 'PC';\n }\n }\n generateWidgetId(widget: Widget) {\n return widget.type.replace(/-/g, '') + generateId();\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 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 this.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 {\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 public copyWidget(widget: Widget) {\n if (widget.category === 'bi') {\n return this.copyBiWidget(widget);\n }\n if (widget.category === 'container') {\n return this.copyNewContainerWidget(widget);\n } else {\n return this.copyNewFieldWidget(widget);\n }\n }\n\n private copyNewFieldWidget(origin: Widget) {\n const newWidget = deepClone(origin);\n const tempId = this.generateWidgetId(newWidget);\n newWidget.id = tempId;\n newWidget.options.name = tempId;\n newWidget.options.label = newWidget.options.label || newWidget.type.toLowerCase();\n\n return newWidget;\n }\n\n private copyNewContainerWidget(origin: Widget) {\n const newCon = deepClone(origin);\n const tempId = this.generateWidgetId(newCon);\n newCon.id = tempId;\n newCon.options.name = tempId;\n if (newCon.type === 'grid') {\n let newCol = deepClone(this.getContainerByType('grid-col'));\n let tmpId = this.generateWidgetId(newCol);\n newCol.id = tmpId;\n newCol.options.name = tmpId;\n newCon.cols = newCon.cols || [];\n newCon.cols.push(newCol);\n\n newCol = deepClone(newCol);\n tmpId = this.generateWidgetId(newCol);\n newCol.id = tmpId;\n newCol.options.name = tmpId;\n newCon.cols.push(newCol);\n } else if (newCon.type === 'tab') {\n const newTabPane = deepClone(this.getContainerByType('tab-pane'));\n newTabPane.id = this.generateWidgetId(newTabPane);\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 if (this.layoutType === LayoutTypeEnum.BI) {\n newCon.options.widget = '200px';\n newCon.options.height = '200px';\n }\n\n return newCon;\n }\n\n copyBiWidget(origin: Widget) {\n const newWidget = deepClone(origin);\n const tempId = this.generateWidgetId(newWidget);\n newWidget.id = tempId;\n newWidget.options.name = tempId;\n newWidget.options.label = newWidget.options.label || newWidget.type.toLowerCase();\n\n return newWidget;\n }\n\n public addWidget(widget: Widget) {\n let newCon: Widget;\n if (widget.category === 'container' || widget.category === 'bi') {\n newCon = this.addContainerByDbClick(widget);\n } else {\n newCon = this.addFieldByDbClick(widget);\n }\n\n this.setSelected(newCon);\n this.emitHistoryChange();\n }\n\n addContainerByDbClick(container: Widget): Widget {\n const newCon = this.copyWidget(container);\n this.widgetList.push(newCon);\n return newCon;\n }\n\n addFieldByDbClick(widget: Widget): Widget {\n const newWidget = this.copyWidget(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 return newWidget;\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 = this.generateWidgetId(newGridCol);\n newGridCol.id = tmpId;\n newGridCol.options.name = 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 const tmpId = this.generateWidgetId(newTabPane);\n newTabPane.id = tmpId;\n newTabPane.options.name = tmpId;\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 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 = '';\n if (widgetListBackup) {\n this.widgetList = JSON.parse(widgetListBackup);\n }\n\n const formConfigBackup = '';\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","widget","generateId","evtName","evtData","eventBus","callback","data","skipHistoryChange","emptyWidgetListFlag","overwriteObj","preCssCode","newType","formJson","modifiedFlag","selected","selectedWidget","newName","newLabel","evt","_a","wgCategory","type","wgType","targetClassName","isDialogOrDrawer","disallowedRules","rule","typeName","allWidgets","containers","basicFields","advancedFields","customFields","foundCon","con","foundWidget","configName","originalWidget","oldWidget","newWidget","ck","oldFormConfig","fc","parentWidget","newGridCol","tmpId","containWidget","newGrid","gridCol","parentList","indexOfParentList","tempWidget","origin","tempId","newCon","newCol","newTabPane","LayoutTypeEnum","container","activeTab","tabPane","gridWidget","colIdx","cols","spanSum","col","_b","tabsWidget","tabPanes","tpIdx","cssClassList","createDesigner"],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { defineComponent as d, createElementBlock as o, openBlock as s, normalizeClass as i, createVNode as c, unref as e } from "vue";
|
|
2
|
+
import p from "./RenderDesignerWigetList.vue.js";
|
|
3
|
+
import { useDesigner as m } from "../../../hooks/useDesigner.js";
|
|
4
|
+
const _ = {
|
|
5
|
+
class: /* @__PURE__ */ i({
|
|
6
|
+
"form-widget-canvas": !0,
|
|
7
|
+
"form-widget-canvas-pc": !0
|
|
8
|
+
})
|
|
9
|
+
}, v = /* @__PURE__ */ d({
|
|
10
|
+
__name: "RenderDesignerPC",
|
|
11
|
+
setup(g) {
|
|
12
|
+
const { designer: t, onDragAdd: n, onDragUpdate: r } = m();
|
|
13
|
+
return (l, u) => (s(), o("div", _, [
|
|
14
|
+
c(p, {
|
|
15
|
+
list: e(t).widgetList,
|
|
16
|
+
parentWidget: e(t),
|
|
17
|
+
add: (a) => e(n)(a.newIndex, e(t).widgetList),
|
|
18
|
+
update: e(r)
|
|
19
|
+
}, null, 8, ["list", "parentWidget", "add", "update"])
|
|
20
|
+
]));
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
export {
|
|
24
|
+
v as default
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=RenderDesignerPC.vue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RenderDesignerPC.vue.js","sources":["../../../../../src/components/form-designer/form-widget/RenderDesignerPC.vue"],"sourcesContent":["<template>\n <div\n :class=\"{\n 'form-widget-canvas': true,\n 'form-widget-canvas-pc': true\n }\"\n >\n <RenderDesignerWigetList\n :list=\"designer.widgetList\"\n :parentWidget=\"designer\"\n :add=\"ev => onDragAdd(ev.newIndex, designer.widgetList)\"\n :update=\"onDragUpdate\"\n />\n </div>\n</template>\n\n<script lang=\"ts\" setup>\n import RenderDesignerWigetList from './RenderDesignerWigetList.vue';\n import { useDesigner } from '../../../hooks/useDesigner';\n const { designer, isPc, isBI, onDragAdd, onDragUpdate } = useDesigner();\n</script>\n"],"names":["designer","onDragAdd","onDragUpdate","useDesigner","_openBlock","_createElementBlock","_hoisted_1","_createVNode","RenderDesignerWigetList","_unref","ev"],"mappings":";;;;;;;;;;;AAmBI,UAAM,EAAE,UAAAA,GAAsB,WAAAC,GAAW,cAAAC,EAAA,IAAiBC,EAAA;sBAlB1DC,EAAA,GAAAC,EAYM,OAZNC,GAYM;AAAA,MANFC,EAKEC,GAAA;AAAA,QAJG,MAAMC,EAAAT,CAAA,EAAS;AAAA,QACf,cAAcS,EAAAT,CAAA;AAAA,QACd,KAAK,CAAAU,MAAMD,EAAAR,CAAA,EAAUS,EAAG,UAAUD,EAAAT,CAAA,EAAS,UAAU;AAAA,QACrD,QAAQS,EAAAP,CAAA;AAAA,MAAA;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RenderDesignerPC.vue2.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -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 "../../../hooks/useDesigner.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 '@/hooks/useDesigner';\n import { Widget } from '@/types/schema';\n import Draggable from '@/lib/vuedraggable/src/vuedraggable';\n import { FormDesigner } from '@/types/designer';\n import { inject, Ref, 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;;;;;;;"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import e from "./RenderDesignerBI.vue2.js";
|
|
2
|
+
/* empty css */
|
|
3
|
+
import o from "../../../../../_virtual/_plugin-vue_export-helper.js";
|
|
4
|
+
const m = /* @__PURE__ */ o(e, [["__scopeId", "data-v-82edab33"]]);
|
|
5
|
+
export {
|
|
6
|
+
m as default
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=RenderDesignerBI.vue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RenderDesignerBI.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { defineComponent as p, ref as g, reactive as x, onMounted as v, onBeforeUnmount as w, createElementBlock as b, openBlock as a, normalizeClass as C, createVNode as u, createBlock as y, createCommentVNode as R, unref as i, mergeProps as B, isRef as _, withCtx as k, createElementVNode as M } from "vue";
|
|
2
|
+
import U from "./RenderDesignerBIWigetList.vue.js";
|
|
3
|
+
import W from "../../../../../node_modules/.pnpm/vue3-sketch-ruler@2.3.3/node_modules/vue3-sketch-ruler/lib/index.js";
|
|
4
|
+
/* empty css */
|
|
5
|
+
import h from "./WidgetContextMenu.vue.js";
|
|
6
|
+
import { useRuler as D } from "./useRuler.js";
|
|
7
|
+
import { useDesigner as N } from "../../../../hooks/useDesigner.js";
|
|
8
|
+
const O = { class: "canvas-wrapper" }, Y = /* @__PURE__ */ p({
|
|
9
|
+
__name: "RenderDesignerBI",
|
|
10
|
+
setup(V) {
|
|
11
|
+
const { designer: d } = N(), o = g(null), { scale: r, rulerConfig: s, onResizeObserver: m, disconnectObserver: c } = D(), e = x({
|
|
12
|
+
visible: !1,
|
|
13
|
+
x: 0,
|
|
14
|
+
y: 0,
|
|
15
|
+
widget: null,
|
|
16
|
+
index: -1
|
|
17
|
+
}), f = ({
|
|
18
|
+
event: l,
|
|
19
|
+
widget: t,
|
|
20
|
+
index: n
|
|
21
|
+
}) => {
|
|
22
|
+
e.x = l.clientX, e.y = l.clientY, e.widget = t, e.index = n, e.visible = !0;
|
|
23
|
+
};
|
|
24
|
+
return v(() => {
|
|
25
|
+
o.value && m(o);
|
|
26
|
+
}), w(() => {
|
|
27
|
+
c();
|
|
28
|
+
}), (l, t) => (a(), b("div", {
|
|
29
|
+
ref_key: "containerRef",
|
|
30
|
+
ref: o,
|
|
31
|
+
class: C({
|
|
32
|
+
"form-widget-canvas": !0,
|
|
33
|
+
"form-widget-canvas-bi": !0
|
|
34
|
+
})
|
|
35
|
+
}, [
|
|
36
|
+
u(i(W), B(i(s), {
|
|
37
|
+
scale: i(r),
|
|
38
|
+
"onUpdate:scale": t[1] || (t[1] = (n) => _(r) ? r.value = n : null)
|
|
39
|
+
}), {
|
|
40
|
+
default: k(() => [
|
|
41
|
+
M("div", O, [
|
|
42
|
+
u(U, {
|
|
43
|
+
list: i(d).widgetList,
|
|
44
|
+
parentWidget: i(d),
|
|
45
|
+
shadow: i(s).shadow,
|
|
46
|
+
"onUpdate:shadow": t[0] || (t[0] = (n) => i(s).shadow = n),
|
|
47
|
+
onOpenContextMenu: f
|
|
48
|
+
}, null, 8, ["list", "parentWidget", "shadow"])
|
|
49
|
+
])
|
|
50
|
+
]),
|
|
51
|
+
_: 1
|
|
52
|
+
}, 16, ["scale"]),
|
|
53
|
+
e.widget ? (a(), y(h, {
|
|
54
|
+
key: 0,
|
|
55
|
+
visible: e.visible,
|
|
56
|
+
"onUpdate:visible": t[2] || (t[2] = (n) => e.visible = n),
|
|
57
|
+
x: e.x,
|
|
58
|
+
y: e.y,
|
|
59
|
+
widget: e.widget,
|
|
60
|
+
index: e.index
|
|
61
|
+
}, null, 8, ["visible", "x", "y", "widget", "index"])) : R("", !0)
|
|
62
|
+
], 512));
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
export {
|
|
66
|
+
Y as default
|
|
67
|
+
};
|
|
68
|
+
//# sourceMappingURL=RenderDesignerBI.vue2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RenderDesignerBI.vue2.js","sources":["../../../../../../src/components/form-designer/form-widget/bi/RenderDesignerBI.vue"],"sourcesContent":["<template>\n <div\n ref=\"containerRef\"\n :class=\"{\n 'form-widget-canvas': true,\n 'form-widget-canvas-bi': true\n }\"\n >\n <SketchRule v-bind=\"rulerConfig\" v-model:scale=\"scale\">\n <div class=\"canvas-wrapper\">\n <RenderDesignerBIWigetList\n :list=\"designer.widgetList\"\n :parentWidget=\"designer\"\n v-model:shadow=\"rulerConfig.shadow\"\n @open-context-menu=\"handleContextMenu\"\n />\n </div>\n </SketchRule>\n <WidgetContextMenu\n v-if=\"contextMenuState.widget\"\n v-model:visible=\"contextMenuState.visible\"\n :x=\"contextMenuState.x\"\n :y=\"contextMenuState.y\"\n :widget=\"contextMenuState.widget!\"\n :index=\"contextMenuState.index\"\n />\n <!-- <BiToolBar v-model:scale=\"scale\" /> -->\n </div>\n</template>\n\n<script lang=\"ts\" setup>\n import { ref, onMounted, onBeforeUnmount, reactive } from 'vue';\n import RenderDesignerBIWigetList from './RenderDesignerBIWigetList.vue';\n import SketchRule from 'vue3-sketch-ruler';\n import 'vue3-sketch-ruler/lib/style.css';\n import WidgetContextMenu from './WidgetContextMenu.vue';\n import { Widget } from '@/types/schema';\n import { useRuler } from './useRuler';\n import { useDesigner } from '../../../../hooks/useDesigner';\n import BiToolBar from './BiToolBar.vue';\n\n const { designer, onDragUpdate } = useDesigner();\n const containerRef = ref<HTMLElement | null>(null);\n\n const { scale, rulerConfig, onResizeObserver, disconnectObserver } = useRuler();\n\n const contextMenuState = reactive({\n visible: false,\n x: 0,\n y: 0,\n widget: null as Widget | null,\n index: -1\n });\n\n const handleContextMenu = ({\n event,\n widget,\n index\n }: {\n event: MouseEvent;\n widget: Widget;\n index: number;\n }) => {\n contextMenuState.x = event.clientX;\n contextMenuState.y = event.clientY;\n contextMenuState.widget = widget;\n contextMenuState.index = index;\n contextMenuState.visible = true;\n };\n\n onMounted(() => {\n if (containerRef.value) {\n onResizeObserver(containerRef);\n }\n });\n\n onBeforeUnmount(() => {\n disconnectObserver();\n });\n</script>\n\n<style scoped lang=\"scss\">\n .form-widget-canvas-bi {\n position: relative;\n width: 100%;\n height: 100%;\n overflow: hidden;\n padding: 0 !important;\n --grid-line-color: rgba(0, 0, 0, 0.1);\n :deep(.canvasedit-parent) {\n background-color: #18181c !important;\n background-size: 15px 15px !important;\n background-image: linear-gradient(#18181c 14px, transparent 0),\n linear-gradient(90deg, transparent 14px, #86909c 0) !important;\n }\n :deep(.canvasedit) {\n background: #232324;\n }\n }\n\n .canvas-wrapper {\n height: 100%;\n width: 100%;\n position: relative;\n }\n\n .canvas-content {\n /* Content styling */\n margin: 40px; /* Some padding around the actual content */\n }\n\n .zoom-control {\n position: absolute;\n bottom: 20px;\n right: 20px;\n z-index: 100;\n display: flex;\n align-items: center;\n background: rgba(255, 255, 255, 0.8);\n padding: 5px 15px;\n border-radius: 4px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n\n span {\n min-width: 40px;\n text-align: right;\n color: #333;\n }\n }\n</style>\n"],"names":["designer","useDesigner","containerRef","ref","scale","rulerConfig","onResizeObserver","disconnectObserver","useRuler","contextMenuState","reactive","handleContextMenu","event","widget","index","onMounted","onBeforeUnmount","_createElementBlock","_normalizeClass","_createVNode","_unref","SketchRule","_mergeProps","$event","_createElementVNode","_hoisted_1","RenderDesignerBIWigetList","_cache","_createBlock","WidgetContextMenu"],"mappings":";;;;;;;;;;AAyCI,UAAM,EAAE,UAAAA,EAAuB,IAAIC,EAAA,GAC7BC,IAAeC,EAAwB,IAAI,GAE3C,EAAE,OAAAC,GAAO,aAAAC,GAAa,kBAAAC,GAAkB,oBAAAC,EAAA,IAAuBC,EAAA,GAE/DC,IAAmBC,EAAS;AAAA,MAC9B,SAAS;AAAA,MACT,GAAG;AAAA,MACH,GAAG;AAAA,MACH,QAAQ;AAAA,MACR,OAAO;AAAA,IAAA,CACV,GAEKC,IAAoB,CAAC;AAAA,MACvB,OAAAC;AAAA,MACA,QAAAC;AAAA,MACA,OAAAC;AAAA,IAAA,MAKE;AACF,MAAAL,EAAiB,IAAIG,EAAM,SAC3BH,EAAiB,IAAIG,EAAM,SAC3BH,EAAiB,SAASI,GAC1BJ,EAAiB,QAAQK,GACzBL,EAAiB,UAAU;AAAA,IAC/B;AAEA,WAAAM,EAAU,MAAM;AACZ,MAAIb,EAAa,SACbI,EAAiBJ,CAAY;AAAA,IAErC,CAAC,GAEDc,EAAgB,MAAM;AAClB,MAAAT,EAAA;AAAA,IACJ,CAAC,mBA7EDU,EA0BM,OAAA;AAAA,eAzBE;AAAA,MAAJ,KAAIf;AAAA,MACH,OAAKgB,EAAE;AAAA;;OAGP;AAAA,IAAA;MAEDC,EASaC,EAAAC,CAAA,GATbC,EASaF,EAAAf,CAAA,GATkB;AAAA,QAAU,OAAOe,EAAAhB,CAAA;AAAA,wDAAAA,EAAK,QAAAmB,IAAA;AAAA,MAAA;mBACjD,MAOM;AAAA,UAPNC,EAOM,OAPNC,GAOM;AAAA,YANFN,EAKEO,GAAA;AAAA,cAJG,MAAMN,EAAApB,CAAA,EAAS;AAAA,cACf,cAAcoB,EAAApB,CAAA;AAAA,cACP,QAAQoB,EAAAf,CAAA,EAAY;AAAA,cAAZ,mBAAAsB,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAJ,MAAAH,EAAAf,CAAA,EAAY,SAAMkB;AAAA,cACjC,mBAAmBZ;AAAA,YAAA;;;;;MAKtBF,EAAiB,eAD3BmB,EAOEC,GAAA;AAAA;QALU,SAASpB,EAAiB;AAAA,QAAjB,oBAAAkB,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAJ,MAAAd,EAAiB,UAAOc;AAAA,QACxC,GAAGd,EAAiB;AAAA,QACpB,GAAGA,EAAiB;AAAA,QACpB,QAAQA,EAAiB;AAAA,QACzB,OAAOA,EAAiB;AAAA,MAAA;;;;"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import e from "./RenderDesignerBIWigetList.vue2.js";
|
|
2
|
+
/* empty css */
|
|
3
|
+
import t from "../../../../../_virtual/_plugin-vue_export-helper.js";
|
|
4
|
+
const s = /* @__PURE__ */ t(e, [["__scopeId", "data-v-e29f4673"]]);
|
|
5
|
+
export {
|
|
6
|
+
s as default
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=RenderDesignerBIWigetList.vue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RenderDesignerBIWigetList.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
import { defineComponent as I, mergeModels as m, useModel as L, createBlock as R, openBlock as _, unref as a, mergeProps as B, withCtx as E, createElementVNode as w, createVNode as p, withModifiers as z, Fragment as A } from "vue";
|
|
2
|
+
import { useDesigner as F, getWidget as N } from "../../../../hooks/useDesigner.js";
|
|
3
|
+
import O from "../../../../lib/vuedraggable/src/vuedraggable.js";
|
|
4
|
+
import { ESDrager as P } from "../../../../../node_modules/.pnpm/es-drager@1.3.2_vue@3.5.17_typescript@5.8.2_/node_modules/es-drager/lib/index.es.js";
|
|
5
|
+
/* empty css */
|
|
6
|
+
const S = {
|
|
7
|
+
class: "transition-group-el"
|
|
8
|
+
}, G = /* @__PURE__ */ I({
|
|
9
|
+
name: "RenderDesignerWigetList",
|
|
10
|
+
__name: "RenderDesignerBIWigetList",
|
|
11
|
+
props: /* @__PURE__ */ m({
|
|
12
|
+
parentWidget: {},
|
|
13
|
+
list: {},
|
|
14
|
+
end: {},
|
|
15
|
+
update: {
|
|
16
|
+
type: Function,
|
|
17
|
+
default: () => {
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}, {
|
|
21
|
+
shadow: {
|
|
22
|
+
default() {
|
|
23
|
+
return {
|
|
24
|
+
x: 0,
|
|
25
|
+
y: 0,
|
|
26
|
+
width: 0,
|
|
27
|
+
height: 0
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
shadowModifiers: {}
|
|
32
|
+
}),
|
|
33
|
+
emits: /* @__PURE__ */ m(["open-context-menu"], ["update:shadow"]),
|
|
34
|
+
setup(c, {
|
|
35
|
+
emit: g
|
|
36
|
+
}) {
|
|
37
|
+
const r = c, x = g, C = (t, e, o) => {
|
|
38
|
+
x("open-context-menu", {
|
|
39
|
+
event: t,
|
|
40
|
+
widget: e,
|
|
41
|
+
index: o
|
|
42
|
+
});
|
|
43
|
+
}, u = L(c, "shadow"), {
|
|
44
|
+
selectWidget: W,
|
|
45
|
+
selected: k
|
|
46
|
+
} = F(), v = (t, e) => {
|
|
47
|
+
var o, n, i, s, l;
|
|
48
|
+
((o = t.options) == null ? void 0 : o.width) === e.width && ((n = t.options) == null ? void 0 : n.height) === e.height && ((i = t.options) == null ? void 0 : i.rotate) === e.angle && ((s = t.options) == null ? void 0 : s.left) === e.left && ((l = t.options) == null ? void 0 : l.top) === e.top || (t.options || (t.options = {}), t.options.width = e.width, t.options.height = e.height, t.options.rotate = e.angle, t.options.left = e.left, t.options.top = e.top, u.value = {
|
|
49
|
+
x: e.left,
|
|
50
|
+
y: e.top,
|
|
51
|
+
width: e.width,
|
|
52
|
+
height: e.height
|
|
53
|
+
});
|
|
54
|
+
}, y = (t) => {
|
|
55
|
+
const e = t.newIndex, o = r.list[e];
|
|
56
|
+
if (o) {
|
|
57
|
+
const n = t.to.getBoundingClientRect(), i = t.originalEvent;
|
|
58
|
+
let s = i.clientX, l = i.clientY;
|
|
59
|
+
if (s != null && l != null) {
|
|
60
|
+
const d = s - n.left, f = l - n.top;
|
|
61
|
+
o.options || (o.options = {});
|
|
62
|
+
const h = {
|
|
63
|
+
width: 500,
|
|
64
|
+
height: 300,
|
|
65
|
+
position: "absolute",
|
|
66
|
+
left: d,
|
|
67
|
+
top: f
|
|
68
|
+
};
|
|
69
|
+
u.value = {
|
|
70
|
+
x: d,
|
|
71
|
+
y: f,
|
|
72
|
+
width: h.width,
|
|
73
|
+
height: h.height
|
|
74
|
+
}, Object.assign(o.options, h);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}, M = (t) => (console.log(t), !0), b = ({
|
|
78
|
+
widget: t,
|
|
79
|
+
index: e
|
|
80
|
+
}) => {
|
|
81
|
+
const o = N(t);
|
|
82
|
+
return o ? p(P, {
|
|
83
|
+
selected: k(t.id),
|
|
84
|
+
width: t.options.width,
|
|
85
|
+
height: t.options.height,
|
|
86
|
+
left: t.options.left,
|
|
87
|
+
top: t.options.top,
|
|
88
|
+
onChange: (n) => v(t, n),
|
|
89
|
+
border: !1,
|
|
90
|
+
markline: !0,
|
|
91
|
+
disabled: t.options.locked,
|
|
92
|
+
style: {
|
|
93
|
+
zIndex: t.options.zIndex
|
|
94
|
+
}
|
|
95
|
+
}, {
|
|
96
|
+
default: () => [p(o, {
|
|
97
|
+
parentList: r.list,
|
|
98
|
+
indexOfParentList: e,
|
|
99
|
+
parentWidget: r.parentWidget,
|
|
100
|
+
designState: !0,
|
|
101
|
+
widget: t,
|
|
102
|
+
field: t
|
|
103
|
+
}, null)]
|
|
104
|
+
}) : p(A, null, null);
|
|
105
|
+
};
|
|
106
|
+
return (t, e) => (_(), R(a(O), B({
|
|
107
|
+
list: t.list,
|
|
108
|
+
"item-key": "id"
|
|
109
|
+
}, {
|
|
110
|
+
group: "dragGroup",
|
|
111
|
+
ghostClass: "ghost",
|
|
112
|
+
animation: 300
|
|
113
|
+
}, {
|
|
114
|
+
tag: "transition-group",
|
|
115
|
+
handle: ".drag-handler",
|
|
116
|
+
onAdd: y,
|
|
117
|
+
onUpdate: t.update,
|
|
118
|
+
move: M
|
|
119
|
+
}), {
|
|
120
|
+
item: E(({
|
|
121
|
+
element: o,
|
|
122
|
+
index: n
|
|
123
|
+
}) => [w("div", S, [p(b, {
|
|
124
|
+
onContextmenu: z((i) => C(i, o, n), ["prevent", "stop"]),
|
|
125
|
+
onClick: (i) => a(W)(o),
|
|
126
|
+
widget: o,
|
|
127
|
+
index: n
|
|
128
|
+
}, null, 8, ["onContextmenu", "onClick", "widget", "index"])])]),
|
|
129
|
+
_: 1
|
|
130
|
+
}, 16, ["list", "onUpdate"]));
|
|
131
|
+
}
|
|
132
|
+
});
|
|
133
|
+
export {
|
|
134
|
+
G as default
|
|
135
|
+
};
|
|
136
|
+
//# sourceMappingURL=RenderDesignerBIWigetList.vue2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RenderDesignerBIWigetList.vue2.js","sources":["../../../../../../src/components/form-designer/form-widget/bi/RenderDesignerBIWigetList.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 handle=\".drag-handler\"\n @add=\"onDragAdd\"\n @update=\"update\"\n :move=\"checkMove\"\n >\n <template #item=\"{ element: widget, index }\">\n <div class=\"transition-group-el\">\n <WidgetRender\n @contextmenu.prevent.stop=\"e => onContextMenu(e, widget, index)\"\n @click=\"selectWidget(widget)\"\n :widget=\"widget\"\n :index=\"index\"\n />\n </div>\n </template>\n </Draggable>\n</template>\n\n<script lang=\"tsx\" setup>\n import { getWidget, useDesigner } from '@/hooks/useDesigner';\n import { Widget } from '@/types/schema';\n import Draggable from '@/lib/vuedraggable/src/vuedraggable';\n import { FormDesigner } from '@/types/designer';\n import Drager from 'es-drager';\n import 'es-drager/lib/style.css';\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 update?: (e: any) => void;\n }>(),\n {\n update: () => {}\n }\n );\n\n const emit = defineEmits<{\n (\n e: 'open-context-menu',\n payload: { event: MouseEvent; widget: Widget; index: number }\n ): void;\n }>();\n\n const onContextMenu = (event: MouseEvent, widget: Widget, index: number) => {\n emit('open-context-menu', { event, widget, index });\n };\n\n const shadow = defineModel('shadow', {\n default() {\n return {\n x: 0,\n y: 0,\n width: 0,\n height: 0\n };\n }\n });\n const { selectWidget, selected } = useDesigner();\n\n const onChange = (widget: Widget, dragData: any) => {\n if (\n widget.options?.width === dragData.width &&\n widget.options?.height === dragData.height &&\n widget.options?.rotate === dragData.angle &&\n widget.options?.left === dragData.left &&\n widget.options?.top === dragData.top\n ) {\n return;\n }\n\n if (!widget.options) widget.options = {} as any;\n widget.options.width = dragData.width;\n widget.options.height = dragData.height;\n widget.options.rotate = dragData.angle;\n widget.options.left = dragData.left;\n widget.options.top = dragData.top;\n shadow.value = {\n x: dragData.left,\n y: dragData.top,\n width: dragData.width,\n height: dragData.height\n };\n };\n const onDragAdd = (ev: any) => {\n const newIndex = ev.newIndex;\n const widget = props.list[newIndex];\n\n if (widget) {\n const containerRect = ev.to.getBoundingClientRect();\n const originalEvent = ev.originalEvent;\n let clientX = originalEvent.clientX;\n let clientY = originalEvent.clientY;\n\n if (clientX != null && clientY != null) {\n const left = clientX - containerRect.left;\n const top = clientY - containerRect.top;\n\n if (!widget.options) {\n widget.options = {} as any;\n }\n\n const styles = {\n width: 500,\n height: 300,\n position: 'absolute',\n left: left,\n top: top\n };\n shadow.value = {\n x: left,\n y: top,\n width: styles.width,\n height: styles.height\n };\n Object.assign(widget.options, styles);\n }\n }\n };\n\n const checkMove = evt => {\n console.log(evt);\n\n return true;\n };\n\n const WidgetRender = ({ widget, index }: { widget: Widget; index: number }) => {\n const CurrentWidget = getWidget(widget) as any;\n if (!CurrentWidget) {\n return <></>;\n }\n return (\n <Drager\n selected={selected(widget.id as string)}\n width={widget.options.width}\n height={widget.options.height}\n left={widget.options.left}\n top={widget.options.top}\n onChange={dragData => onChange(widget, dragData)}\n border={false}\n markline={true}\n disabled={widget.options.locked}\n style={{ zIndex: widget.options.zIndex }}\n >\n <CurrentWidget\n parentList={props.list}\n indexOfParentList={index}\n parentWidget={props.parentWidget}\n designState={true}\n widget={widget}\n field={widget}\n />\n </Drager>\n );\n };\n</script>\n\n<style scoped lang=\"less\">\n .transition-group-el {\n position: absolute;\n :deep(.es-drager) {\n --es-drager-color: var(--ant-primary-2) !important;\n --es-drager-dot-handle-color: #51d6a9;\n &:hover:not(.es-drager-text):after {\n display: block;\n outline: 1px dashed var(--es-drager-color);\n }\n &.selected {\n background-color: rgba(81, 214, 169, 0.1);\n &:not(.es-drager-text):after {\n outline: 1px solid var(--es-drager-color);\n }\n }\n .es-drager-dot-handle {\n border: 3px solid var(--es-drager-dot-handle-color);\n border-radius: 5px;\n background-color: #fff;\n }\n }\n }\n</style>\n"],"names":["props","__props","emit","__emit","onContextMenu","event","widget","index","shadow","_useModel","selectWidget","selected","useDesigner","onChange","dragData","options","width","height","rotate","angle","left","top","value","x","y","onDragAdd","ev","newIndex","list","containerRect","to","getBoundingClientRect","originalEvent","clientX","clientY","styles","position","Object","assign","checkMove","evt","console","log","WidgetRender","CurrentWidget","getWidget","_createVNode2","Drager","id","locked","zIndex","default","parentWidget","_Fragment","_openBlock","_createBlock","_unref","_mergeProps","group","ghostClass","animation","tag","handle","onAdd","onUpdate","update","move","item","_withCtx","element","_createElementVNode","_hoisted_1","_createVNode","onContextmenu","_withModifiers","e","onClick","$event"],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import t from "./WidgetContextMenu.vue2.js";
|
|
2
|
+
/* empty css */
|
|
3
|
+
import o from "../../../../../_virtual/_plugin-vue_export-helper.js";
|
|
4
|
+
const p = /* @__PURE__ */ o(t, [["__scopeId", "data-v-5c0e43ed"]]);
|
|
5
|
+
export {
|
|
6
|
+
p as default
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=WidgetContextMenu.vue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WidgetContextMenu.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
import { defineComponent as I, resolveComponent as r, createBlock as O, openBlock as x, withCtx as o, createElementVNode as B, normalizeStyle as V, createVNode as n, createElementBlock as y, Fragment as _, createTextVNode as d, unref as l } from "vue";
|
|
2
|
+
import { UnlockOutlined as A, LockOutlined as L, VerticalAlignTopOutlined as D, VerticalAlignBottomOutlined as M, ArrowUpOutlined as T, ArrowDownOutlined as $, AppstoreOutlined as F, DeleteOutlined as N } from "@ant-design/icons-vue";
|
|
3
|
+
import { useDesigner as U } from "../../../../hooks/useDesigner.js";
|
|
4
|
+
const S = /* @__PURE__ */ I({
|
|
5
|
+
name: "WidgetContextMenu",
|
|
6
|
+
__name: "WidgetContextMenu",
|
|
7
|
+
props: {
|
|
8
|
+
widget: {},
|
|
9
|
+
index: {},
|
|
10
|
+
visible: { type: Boolean },
|
|
11
|
+
x: {},
|
|
12
|
+
y: {}
|
|
13
|
+
},
|
|
14
|
+
emits: ["update:visible"],
|
|
15
|
+
setup(c, { emit: b }) {
|
|
16
|
+
const m = c, { designer: w } = U(), v = b, p = (t) => {
|
|
17
|
+
v("update:visible", t);
|
|
18
|
+
}, C = () => {
|
|
19
|
+
const t = m.widget;
|
|
20
|
+
t.options.locked = !t.options.locked, p(!1);
|
|
21
|
+
}, a = (t) => {
|
|
22
|
+
const e = m.widget, i = e.options.zIndex || 0, u = w.value.widgetList;
|
|
23
|
+
switch (t) {
|
|
24
|
+
case "top":
|
|
25
|
+
const k = Math.max(...u.map((s) => s.options.zIndex || 0));
|
|
26
|
+
e.options.zIndex = k + 1;
|
|
27
|
+
break;
|
|
28
|
+
case "bottom":
|
|
29
|
+
const g = Math.min(...u.map((s) => s.options.zIndex || 0));
|
|
30
|
+
e.options.zIndex = g - 1;
|
|
31
|
+
break;
|
|
32
|
+
case "up":
|
|
33
|
+
e.options.zIndex = i + 1;
|
|
34
|
+
break;
|
|
35
|
+
case "down":
|
|
36
|
+
e.options.zIndex = i - 1;
|
|
37
|
+
break;
|
|
38
|
+
}
|
|
39
|
+
p(!1);
|
|
40
|
+
}, z = () => {
|
|
41
|
+
w.value.widgetList.splice(m.index, 1), p(!1);
|
|
42
|
+
};
|
|
43
|
+
return (t, e) => {
|
|
44
|
+
const i = r("a-menu-item"), u = r("a-sub-menu"), k = r("a-menu-divider"), g = r("a-menu"), s = r("a-dropdown");
|
|
45
|
+
return x(), O(s, {
|
|
46
|
+
open: t.visible,
|
|
47
|
+
"onUpdate:open": p,
|
|
48
|
+
trigger: ["click"]
|
|
49
|
+
}, {
|
|
50
|
+
overlay: o(() => [
|
|
51
|
+
n(g, null, {
|
|
52
|
+
default: o(() => [
|
|
53
|
+
n(i, {
|
|
54
|
+
key: "lock",
|
|
55
|
+
onClick: C
|
|
56
|
+
}, {
|
|
57
|
+
default: o(() => [
|
|
58
|
+
t.widget.options.locked ? (x(), y(_, { key: 0 }, [
|
|
59
|
+
n(l(A)),
|
|
60
|
+
e[4] || (e[4] = d(" 解锁 "))
|
|
61
|
+
], 64)) : (x(), y(_, { key: 1 }, [
|
|
62
|
+
n(l(L)),
|
|
63
|
+
e[5] || (e[5] = d(" 锁定 "))
|
|
64
|
+
], 64))
|
|
65
|
+
]),
|
|
66
|
+
_: 1
|
|
67
|
+
}),
|
|
68
|
+
n(u, {
|
|
69
|
+
key: "layer",
|
|
70
|
+
title: "图层"
|
|
71
|
+
}, {
|
|
72
|
+
icon: o(() => [
|
|
73
|
+
n(l(F))
|
|
74
|
+
]),
|
|
75
|
+
default: o(() => [
|
|
76
|
+
n(i, {
|
|
77
|
+
key: "bringToFront",
|
|
78
|
+
onClick: e[0] || (e[0] = (f) => a("top"))
|
|
79
|
+
}, {
|
|
80
|
+
default: o(() => [
|
|
81
|
+
n(l(D)),
|
|
82
|
+
e[6] || (e[6] = d(" 置于顶层 "))
|
|
83
|
+
]),
|
|
84
|
+
_: 1,
|
|
85
|
+
__: [6]
|
|
86
|
+
}),
|
|
87
|
+
n(i, {
|
|
88
|
+
key: "sendToBack",
|
|
89
|
+
onClick: e[1] || (e[1] = (f) => a("bottom"))
|
|
90
|
+
}, {
|
|
91
|
+
default: o(() => [
|
|
92
|
+
n(l(M)),
|
|
93
|
+
e[7] || (e[7] = d(" 置于底层 "))
|
|
94
|
+
]),
|
|
95
|
+
_: 1,
|
|
96
|
+
__: [7]
|
|
97
|
+
}),
|
|
98
|
+
n(i, {
|
|
99
|
+
key: "bringForward",
|
|
100
|
+
onClick: e[2] || (e[2] = (f) => a("up"))
|
|
101
|
+
}, {
|
|
102
|
+
default: o(() => [
|
|
103
|
+
n(l(T)),
|
|
104
|
+
e[8] || (e[8] = d(" 上移一层 "))
|
|
105
|
+
]),
|
|
106
|
+
_: 1,
|
|
107
|
+
__: [8]
|
|
108
|
+
}),
|
|
109
|
+
n(i, {
|
|
110
|
+
key: "sendBackward",
|
|
111
|
+
onClick: e[3] || (e[3] = (f) => a("down"))
|
|
112
|
+
}, {
|
|
113
|
+
default: o(() => [
|
|
114
|
+
n(l($)),
|
|
115
|
+
e[9] || (e[9] = d(" 下移一层 "))
|
|
116
|
+
]),
|
|
117
|
+
_: 1,
|
|
118
|
+
__: [9]
|
|
119
|
+
})
|
|
120
|
+
]),
|
|
121
|
+
_: 1
|
|
122
|
+
}),
|
|
123
|
+
n(k),
|
|
124
|
+
n(i, {
|
|
125
|
+
key: "delete",
|
|
126
|
+
onClick: z
|
|
127
|
+
}, {
|
|
128
|
+
default: o(() => [
|
|
129
|
+
n(l(N)),
|
|
130
|
+
e[10] || (e[10] = d(" 删除 "))
|
|
131
|
+
]),
|
|
132
|
+
_: 1,
|
|
133
|
+
__: [10]
|
|
134
|
+
})
|
|
135
|
+
]),
|
|
136
|
+
_: 1
|
|
137
|
+
})
|
|
138
|
+
]),
|
|
139
|
+
default: o(() => [
|
|
140
|
+
B("div", {
|
|
141
|
+
class: "context-menu-trigger",
|
|
142
|
+
style: V({ position: "fixed", left: t.x + "px", top: t.y + "px" })
|
|
143
|
+
}, null, 4)
|
|
144
|
+
]),
|
|
145
|
+
_: 1
|
|
146
|
+
}, 8, ["open"]);
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
});
|
|
150
|
+
export {
|
|
151
|
+
S as default
|
|
152
|
+
};
|
|
153
|
+
//# sourceMappingURL=WidgetContextMenu.vue2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WidgetContextMenu.vue2.js","sources":["../../../../../../src/components/form-designer/form-widget/bi/WidgetContextMenu.vue"],"sourcesContent":["<template>\n <a-dropdown :open=\"visible\" @update:open=\"handleVisibleChange\" :trigger=\"['click']\">\n <div\n class=\"context-menu-trigger\"\n :style=\"{ position: 'fixed', left: x + 'px', top: y + 'px' }\"\n ></div>\n <template #overlay>\n <a-menu>\n <a-menu-item key=\"lock\" @click=\"handleLock\">\n <template v-if=\"widget.options.locked\">\n <unlock-outlined />\n 解锁\n </template>\n <template v-else>\n <lock-outlined />\n 锁定\n </template>\n </a-menu-item>\n <a-sub-menu key=\"layer\" title=\"图层\">\n <template #icon>\n <appstore-outlined />\n </template>\n <a-menu-item key=\"bringToFront\" @click=\"handleLayer('top')\">\n <vertical-align-top-outlined />\n 置于顶层\n </a-menu-item>\n <a-menu-item key=\"sendToBack\" @click=\"handleLayer('bottom')\">\n <vertical-align-bottom-outlined />\n 置于底层\n </a-menu-item>\n <a-menu-item key=\"bringForward\" @click=\"handleLayer('up')\">\n <arrow-up-outlined />\n 上移一层\n </a-menu-item>\n <a-menu-item key=\"sendBackward\" @click=\"handleLayer('down')\">\n <arrow-down-outlined />\n 下移一层\n </a-menu-item>\n </a-sub-menu>\n <a-menu-divider />\n <a-menu-item key=\"delete\" @click=\"handleDelete\">\n <delete-outlined />\n 删除\n </a-menu-item>\n </a-menu>\n </template>\n </a-dropdown>\n</template>\n\n<script lang=\"ts\" setup>\n import { Widget } from '@/types/schema';\n import {\n DeleteOutlined,\n LockOutlined,\n UnlockOutlined,\n VerticalAlignTopOutlined,\n VerticalAlignBottomOutlined,\n ArrowUpOutlined,\n ArrowDownOutlined,\n AppstoreOutlined\n } from '@ant-design/icons-vue';\n import { useDesigner } from '../../../../hooks/useDesigner';\n\n defineOptions({\n name: 'WidgetContextMenu'\n });\n\n const props = defineProps<{\n widget: Widget;\n index: number;\n visible: boolean;\n x: number;\n y: number;\n }>();\n const { designer, onDragUpdate } = useDesigner();\n const emit = defineEmits<{\n (e: 'update:visible', visible: boolean): void;\n }>();\n\n const handleVisibleChange = (val: boolean) => {\n emit('update:visible', val);\n };\n\n const handleLock = () => {\n const widget = props.widget;\n widget.options.locked = !widget.options.locked;\n handleVisibleChange(false);\n };\n\n const handleLayer = (type: 'top' | 'bottom' | 'up' | 'down') => {\n const widget = props.widget;\n const zIndex = widget.options.zIndex || 0;\n const list = designer.value.widgetList;\n switch (type) {\n case 'top':\n const maxZ = Math.max(...list.map(w => w.options.zIndex || 0));\n widget.options.zIndex = maxZ + 1;\n break;\n case 'bottom':\n const minZ = Math.min(...list.map(w => w.options.zIndex || 0));\n widget.options.zIndex = minZ - 1;\n break;\n case 'up':\n widget.options.zIndex = zIndex + 1;\n break;\n case 'down':\n widget.options.zIndex = zIndex - 1;\n break;\n }\n handleVisibleChange(false);\n };\n\n const handleDelete = () => {\n designer.value.widgetList.splice(props.index, 1);\n handleVisibleChange(false);\n };\n</script>\n\n<style scoped>\n .context-menu-trigger {\n width: 1px;\n height: 1px;\n z-index: 9999;\n }\n</style>\n"],"names":["props","__props","designer","useDesigner","emit","__emit","handleVisibleChange","val","handleLock","widget","handleLayer","type","zIndex","list","maxZ","w","minZ","handleDelete","_createBlock","_component_a_dropdown","visible","_createVNode","_component_a_menu","_component_a_menu_item","_createElementBlock","_Fragment","_unref","UnlockOutlined","LockOutlined","_component_a_sub_menu","AppstoreOutlined","VerticalAlignTopOutlined","VerticalAlignBottomOutlined","ArrowUpOutlined","ArrowDownOutlined","_component_a_menu_divider","DeleteOutlined","_createElementVNode","_normalizeStyle","x","y"],"mappings":"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"}
|