index.tsx 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. import { useResource } from "@/modules/resource";
  2. import { initQueditor } from "@queenjs-modules/queditor";
  3. import { initExpViewer } from "@queenjs-modules/queentree-explorer-viewer";
  4. import { defineComponent, onBeforeUnmount, onMounted } from "vue";
  5. import { useRoute } from "vue-router";
  6. import AttrPanel from "./components/AttrPanel";
  7. import Header from "./components/Header";
  8. import TreePanel from "./components/TreePanel";
  9. export default defineComponent({
  10. setup() {
  11. const route = useRoute();
  12. const expViewer = initExpViewer({
  13. modules: {
  14. queditor: initQueditor({
  15. config: {
  16. dragEnable: true,
  17. },
  18. }),
  19. },
  20. });
  21. const resource = useResource();
  22. const { queditor } = expViewer.modules;
  23. expViewer.initComponents({
  24. Viewport: {
  25. Header: {
  26. default: Header,
  27. },
  28. EditPanel: {
  29. default: AttrPanel,
  30. },
  31. },
  32. });
  33. queditor.initComponents({
  34. Viewport: {
  35. SiderLeft: {
  36. default: TreePanel,
  37. },
  38. Toolbar: {
  39. default: () => null,
  40. },
  41. },
  42. });
  43. const { id } = route.params;
  44. const init = async () => {
  45. await resource.actions.queryTplsDetail(id as string);
  46. queditor.actions.initPack(resource.store.sourceDetail?.webEditor?.pack);
  47. queditor.store.setCurrScene(0);
  48. expViewer.store.setEditNodeUid(resource.store.sourceDetail._id);
  49. };
  50. onMounted(() => init());
  51. onBeforeUnmount(() => resource.store.setSourceDetail({}));
  52. return () => {
  53. return (
  54. <div class="h-100vh">
  55. <expViewer.components.Viewport />
  56. </div>
  57. );
  58. };
  59. },
  60. });