index.tsx 868 B

1234567891011121314151617181920212223242526
  1. import { defineComponent } from "vue";
  2. import { useEditor } from "../..";
  3. import { DesignComp } from "../../objects/DesignTemp/DesignComp";
  4. import { CompUI } from "../CompUI";
  5. export default defineComponent({
  6. setup() {
  7. const { store, helper } = useEditor();
  8. return () => {
  9. const pageComp = helper.findRootComp();
  10. if (!pageComp) return;
  11. return (
  12. <CompUI.Page.Component class="overflow-hidden" compId={pageComp.id}>
  13. {{
  14. Container: (children: any) => children,
  15. CompItem(comp: DesignComp) {
  16. const compKey = store.designData.compMap[comp.id]?.compKey;
  17. const Comp: any = (CompUI[compKey] || CompUI.Container).Component;
  18. return Comp && <Comp key={comp.id} compId={comp.id} />;
  19. },
  20. }}
  21. </CompUI.Page.Component>
  22. );
  23. };
  24. },
  25. });