@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.
Files changed (166) hide show
  1. package/package.json +6 -2
  2. package/src/components/FormRender/useFormContext.js +15 -15
  3. package/src/components/FormRender/useFormContext.js.map +1 -1
  4. package/src/components/bi-widget/echartBar/echart-bar-widget.vue.js +8 -0
  5. package/src/components/bi-widget/echartBar/echart-bar-widget.vue.js.map +1 -0
  6. package/src/components/bi-widget/echartBar/echart-bar-widget.vue2.js +43 -0
  7. package/src/components/bi-widget/echartBar/echart-bar-widget.vue2.js.map +1 -0
  8. package/src/components/bi-widget/echartBar/echart-bar.js +35 -0
  9. package/src/components/bi-widget/echartBar/echart-bar.js.map +1 -0
  10. package/src/components/bi-widget/index.js +13 -0
  11. package/src/components/bi-widget/index.js.map +1 -0
  12. package/src/components/{form-designer/designer.js → designer.js} +71 -76
  13. package/src/components/designer.js.map +1 -0
  14. package/src/components/form-designer/form-widget/RenderDesignerPC.vue.js +26 -0
  15. package/src/components/form-designer/form-widget/RenderDesignerPC.vue.js.map +1 -0
  16. package/src/components/form-designer/form-widget/RenderDesignerPC.vue2.js +5 -0
  17. package/src/components/form-designer/form-widget/RenderDesignerPC.vue2.js.map +1 -0
  18. package/src/components/form-designer/form-widget/RenderDesignerWigetList.vue.js +1 -1
  19. package/src/components/form-designer/form-widget/RenderDesignerWigetList.vue.js.map +1 -1
  20. package/src/components/form-designer/form-widget/bi/RenderDesignerBI.vue.js +8 -0
  21. package/src/components/form-designer/form-widget/bi/RenderDesignerBI.vue.js.map +1 -0
  22. package/src/components/form-designer/form-widget/bi/RenderDesignerBI.vue2.js +68 -0
  23. package/src/components/form-designer/form-widget/bi/RenderDesignerBI.vue2.js.map +1 -0
  24. package/src/components/form-designer/form-widget/bi/RenderDesignerBIWigetList.vue.js +8 -0
  25. package/src/components/form-designer/form-widget/bi/RenderDesignerBIWigetList.vue.js.map +1 -0
  26. package/src/components/form-designer/form-widget/bi/RenderDesignerBIWigetList.vue2.js +136 -0
  27. package/src/components/form-designer/form-widget/bi/RenderDesignerBIWigetList.vue2.js.map +1 -0
  28. package/src/components/form-designer/form-widget/bi/WidgetContextMenu.vue.js +8 -0
  29. package/src/components/form-designer/form-widget/bi/WidgetContextMenu.vue.js.map +1 -0
  30. package/src/components/form-designer/form-widget/bi/WidgetContextMenu.vue2.js +153 -0
  31. package/src/components/form-designer/form-widget/bi/WidgetContextMenu.vue2.js.map +1 -0
  32. package/src/components/form-designer/form-widget/bi/useRuler.js +66 -0
  33. package/src/components/form-designer/form-widget/bi/useRuler.js.map +1 -0
  34. package/src/components/form-designer/form-widget/container-widget/vf-box-widget.vue.js +2 -2
  35. package/src/components/form-designer/form-widget/container-widget/vf-box-widget.vue2.js +24 -21
  36. package/src/components/form-designer/form-widget/container-widget/vf-box-widget.vue2.js.map +1 -1
  37. package/src/components/form-designer/form-widget/container-widget/vf-collapse-widget.vue.js +2 -2
  38. package/src/components/form-designer/form-widget/container-widget/vf-collapse-widget.vue2.js +36 -34
  39. package/src/components/form-designer/form-widget/container-widget/vf-collapse-widget.vue2.js.map +1 -1
  40. package/src/components/form-designer/form-widget/field-widget/form-item-wrapper.vue.js +1 -1
  41. package/src/components/form-designer/form-widget/field-widget/form-item-wrapper.vue2.js +1 -1
  42. package/src/components/form-designer/form-widget/field-widget/form-item-wrapper.vue2.js.map +1 -1
  43. package/src/components/form-designer/form-widget/field-widget/index.js +1 -1
  44. package/src/components/form-designer/form-widget/field-widget/index.js.map +1 -1
  45. package/src/components/form-designer/form-widget/field-widget/useField.js +117 -117
  46. package/src/components/form-designer/form-widget/field-widget/useField.js.map +1 -1
  47. package/src/components/form-designer/form-widget/index.vue.js +2 -2
  48. package/src/components/form-designer/form-widget/index.vue2.js +47 -56
  49. package/src/components/form-designer/form-widget/index.vue2.js.map +1 -1
  50. package/src/components/form-designer/index.vue.js +74 -77
  51. package/src/components/form-designer/index.vue.js.map +1 -1
  52. package/src/components/form-designer/setting-panel/form-setting.vue.js +1 -1
  53. package/src/components/form-designer/setting-panel/form-setting.vue2.js +1 -1
  54. package/src/components/form-designer/setting-panel/form-setting.vue2.js.map +1 -1
  55. package/src/components/form-designer/setting-panel/index.vue.js +1 -1
  56. package/src/components/form-designer/setting-panel/index.vue2.js +1 -1
  57. package/src/components/form-designer/setting-panel/index.vue2.js.map +1 -1
  58. package/src/components/form-designer/setting-panel/option-items-setting.vue.js +2 -2
  59. package/src/components/form-designer/setting-panel/option-items-setting.vue2.js +1 -1
  60. package/src/components/form-designer/setting-panel/option-items-setting.vue2.js.map +1 -1
  61. package/src/components/form-designer/setting-panel/panel/PanelItemDrag.vue.js +51 -0
  62. package/src/components/form-designer/setting-panel/panel/PanelItemDrag.vue.js.map +1 -0
  63. package/src/components/form-designer/setting-panel/panel/PanelItemDragForBI.vue.js +51 -0
  64. package/src/components/form-designer/setting-panel/panel/PanelItemDragForBI.vue.js.map +1 -0
  65. package/src/components/form-designer/setting-panel/panel/PanelItemDragForBI.vue2.js +5 -0
  66. package/src/components/form-designer/setting-panel/panel/PanelItemDragForBI.vue2.js.map +1 -0
  67. package/src/components/form-designer/setting-panel/property-editor/boxModel-editor.vue.js +1 -1
  68. package/src/components/form-designer/setting-panel/property-editor/boxModel-editor.vue2.js +201 -255
  69. package/src/components/form-designer/setting-panel/property-editor/boxModel-editor.vue2.js.map +1 -1
  70. package/src/components/form-designer/setting-panel/property-editor/container-data-table/data-table-customClass-editor.vue2.js +1 -1
  71. package/src/components/form-designer/setting-panel/property-editor/container-data-table/data-table-customClass-editor.vue2.js.map +1 -1
  72. package/src/components/form-designer/setting-panel/property-editor/container-data-table/data-table-dsEnabled-editor.vue2.js +1 -1
  73. package/src/components/form-designer/setting-panel/property-editor/container-data-table/data-table-dsEnabled-editor.vue2.js.map +1 -1
  74. package/src/components/form-designer/setting-panel/property-editor/container-data-table/data-table-tableColumns-editor.vue.js +1 -1
  75. package/src/components/form-designer/setting-panel/property-editor/container-data-table/data-table-tableColumns-editor.vue2.js +1 -1
  76. package/src/components/form-designer/setting-panel/property-editor/container-data-table/data-table-tableColumns-editor.vue2.js.map +1 -1
  77. package/src/components/form-designer/setting-panel/property-editor/container-grid/gutter-editor.vue.js +2 -2
  78. package/src/components/form-designer/setting-panel/property-editor/container-grid/gutter-editor.vue2.js +1 -1
  79. package/src/components/form-designer/setting-panel/property-editor/container-grid/gutter-editor.vue2.js.map +1 -1
  80. package/src/components/form-designer/setting-panel/property-editor/container-grid-col/grid-col-span-editor.vue2.js +1 -1
  81. package/src/components/form-designer/setting-panel/property-editor/container-grid-col/grid-col-span-editor.vue2.js.map +1 -1
  82. package/src/components/form-designer/setting-panel/property-editor/container-tab/tab-customClass-editor.vue.js +1 -1
  83. package/src/components/form-designer/setting-panel/property-editor/container-tab/tab-customClass-editor.vue2.js +1 -1
  84. package/src/components/form-designer/setting-panel/property-editor/container-tab/tab-customClass-editor.vue2.js.map +1 -1
  85. package/src/components/form-designer/setting-panel/property-editor/container-vf-dialog/height-editor.vue2.js.map +1 -1
  86. package/src/components/form-designer/setting-panel/property-editor/container-vf-dialog/width-editor.vue2.js +10 -10
  87. package/src/components/form-designer/setting-panel/property-editor/container-vf-dialog/width-editor.vue2.js.map +1 -1
  88. package/src/components/form-designer/setting-panel/property-editor/customClass-editor.vue2.js +1 -1
  89. package/src/components/form-designer/setting-panel/property-editor/customClass-editor.vue2.js.map +1 -1
  90. package/src/components/form-designer/setting-panel/property-editor/dsEnabled-editor.vue.js +5 -0
  91. package/src/components/form-designer/setting-panel/property-editor/dsEnabled-editor.vue.js.map +1 -0
  92. package/src/components/form-designer/setting-panel/property-editor/dsEnabled-editor.vue2.js +71 -0
  93. package/src/components/form-designer/setting-panel/property-editor/dsEnabled-editor.vue2.js.map +1 -0
  94. package/src/components/form-designer/setting-panel/property-editor/echart-bar-editor.vue.js +5 -0
  95. package/src/components/form-designer/setting-panel/property-editor/echart-bar-editor.vue.js.map +1 -0
  96. package/src/components/form-designer/setting-panel/property-editor/echart-bar-editor.vue2.js +81 -0
  97. package/src/components/form-designer/setting-panel/property-editor/echart-bar-editor.vue2.js.map +1 -0
  98. package/src/components/form-designer/setting-panel/property-editor/field-rate/rate-defaultValue-editor.vue2.js +1 -1
  99. package/src/components/form-designer/setting-panel/property-editor/field-rate/rate-defaultValue-editor.vue2.js.map +1 -1
  100. package/src/components/form-designer/setting-panel/property-editor/field-slider/range-editor.vue2.js +1 -1
  101. package/src/components/form-designer/setting-panel/property-editor/field-slider/range-editor.vue2.js.map +1 -1
  102. package/src/components/form-designer/setting-panel/property-editor/field-switch/switch-defaultValue-editor.vue2.js +1 -1
  103. package/src/components/form-designer/setting-panel/property-editor/field-switch/switch-defaultValue-editor.vue2.js.map +1 -1
  104. package/src/components/form-designer/setting-panel/property-editor/index.js +54 -54
  105. package/src/components/form-designer/setting-panel/property-editor/index.js.map +1 -1
  106. package/src/components/form-designer/setting-panel/property-editor/multiple-editor.vue2.js.map +1 -1
  107. package/src/components/form-designer/setting-panel/property-editor/optionItems-editor.vue2.js +1 -1
  108. package/src/components/form-designer/setting-panel/property-editor/optionItems-editor.vue2.js.map +1 -1
  109. package/src/components/form-designer/setting-panel/property-editor/rightSlotCss-editor.vue2.js +1 -1
  110. package/src/components/form-designer/setting-panel/property-editor/rightSlotCss-editor.vue2.js.map +1 -1
  111. package/src/components/form-designer/setting-panel/property-editor/type-editor.vue2.js.map +1 -1
  112. package/src/components/form-designer/setting-panel/property-editor/useEditor.js +1 -1
  113. package/src/components/form-designer/setting-panel/property-editor/useEditor.js.map +1 -1
  114. package/src/components/form-designer/setting-panel/propertyRegister.js +12 -10
  115. package/src/components/form-designer/setting-panel/propertyRegister.js.map +1 -1
  116. package/src/components/form-designer/toolbar-panel/PreviewDialog.vue.js +1 -1
  117. package/src/components/form-designer/toolbar-panel/PreviewDialog.vue.js.map +1 -1
  118. package/src/components/form-designer/toolbar-panel/index.vue.js +2 -2
  119. package/src/components/form-designer/toolbar-panel/index.vue2.js +137 -177
  120. package/src/components/form-designer/toolbar-panel/index.vue2.js.map +1 -1
  121. package/src/components/form-designer/widget-panel/containers/vf-box.js +4 -1
  122. package/src/components/form-designer/widget-panel/containers/vf-box.js.map +1 -1
  123. package/src/components/form-designer/widget-panel/containers/vf-collapse.js +6 -6
  124. package/src/components/form-designer/widget-panel/containers/vf-collapse.js.map +1 -1
  125. package/src/components/form-designer/widget-panel/index.vue.js +2 -2
  126. package/src/components/form-designer/widget-panel/index.vue2.js +74 -34
  127. package/src/components/form-designer/widget-panel/index.vue2.js.map +1 -1
  128. package/src/components/form-render/container-items/vf-box-widget.vue.js +2 -2
  129. package/src/components/form-render/container-items/vf-box-widget.vue2.js +19 -17
  130. package/src/components/form-render/container-items/vf-box-widget.vue2.js.map +1 -1
  131. package/src/components/form-render/container-items/vf-collapse-widget.vue.js +1 -1
  132. package/src/components/form-render/container-items/vf-collapse-widget.vue2.js +24 -22
  133. package/src/components/form-render/container-items/vf-collapse-widget.vue2.js.map +1 -1
  134. package/src/components/form-render/dynamic-dialog.vue.js +1 -0
  135. package/src/components/form-render/dynamic-dialog.vue.js.map +1 -1
  136. package/src/constants/EditorTypeEnum.js +1 -1
  137. package/src/constants/EditorTypeEnum.js.map +1 -1
  138. package/src/constants/LayoutTypeEnum.js +5 -0
  139. package/src/constants/LayoutTypeEnum.js.map +1 -0
  140. package/src/constants/WidgetTypeEnum.js +4 -3
  141. package/src/constants/WidgetTypeEnum.js.map +1 -1
  142. package/src/hooks/useDesigner.js +51 -0
  143. package/src/hooks/useDesigner.js.map +1 -0
  144. package/src/lang/en-US.js +1 -1
  145. package/src/lang/en-US.js.map +1 -1
  146. package/src/lang/zh-CN.js +5 -3
  147. package/src/lang/zh-CN.js.map +1 -1
  148. package/src/utils/util.js +1 -1
  149. package/src/utils/util.js.map +1 -1
  150. package/stats.html +1 -1
  151. package/styles/style.css +1 -1
  152. package/src/components/form-designer/designer.js.map +0 -1
  153. package/src/components/form-designer/form-widget/field-widget/bpmn-editor-widget copy.vue.js +0 -8
  154. package/src/components/form-designer/form-widget/field-widget/bpmn-editor-widget copy.vue.js.map +0 -1
  155. package/src/components/form-designer/form-widget/field-widget/bpmn-editor-widget copy.vue2.js +0 -58
  156. package/src/components/form-designer/form-widget/field-widget/bpmn-editor-widget copy.vue2.js.map +0 -1
  157. package/src/components/form-designer/form-widget/useFormDesigner.js +0 -34
  158. package/src/components/form-designer/form-widget/useFormDesigner.js.map +0 -1
  159. package/src/components/form-designer/setting-panel/property-editor/container-table-cell/cellHeight-editor.vue.js +0 -32
  160. package/src/components/form-designer/setting-panel/property-editor/container-table-cell/cellHeight-editor.vue.js.map +0 -1
  161. package/src/components/form-designer/setting-panel/property-editor/container-table-cell/cellWidth-editor.vue.js +0 -32
  162. package/src/components/form-designer/setting-panel/property-editor/container-table-cell/cellWidth-editor.vue.js.map +0 -1
  163. package/src/components/form-designer/widget-panel/PanelItemDrag.vue.js +0 -50
  164. package/src/components/form-designer/widget-panel/PanelItemDrag.vue.js.map +0 -1
  165. /package/src/components/form-designer/{widget-panel → setting-panel/panel}/PanelItemDrag.vue2.js +0 -0
  166. /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,5 @@
1
+ import f from "./RenderDesignerPC.vue.js";
2
+ export {
3
+ f as default
4
+ };
5
+ //# sourceMappingURL=RenderDesignerPC.vue2.js.map
@@ -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 "./useFormDesigner.js";
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 '@/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;;;;;;;"}
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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"}