From 2d202cd6d768eba8535f3bcd4e78687729d88512 Mon Sep 17 00:00:00 2001 From: wangxuefeng Date: Tue, 4 Mar 2025 19:05:07 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=E5=BA=94=E7=94=A8?= =?UTF-8?q?=E8=B7=9F=E9=A1=B9=E7=9B=AE=E5=88=97=E8=A1=A8=EF=BC=8C=E5=8C=85?= =?UTF-8?q?=E5=90=AB=E5=A2=9E=E5=88=A0=E6=94=B9=E6=9F=A5=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/components/renderer-adapter/index.vue | 1 + .../src/router/routes/modules/project.ts | 20 ++++++++++++++++++ apps/renderer/package.json | 5 ++++- apps/renderer/src/App.vue | 21 ++++++++++++------- apps/renderer/src/index.ts | 12 +++++++++-- apps/renderer/src/service/index.ts | 2 +- apps/renderer/tsconfig.json | 2 +- pnpm-lock.yaml | 11 +++++++++- 8 files changed, 61 insertions(+), 13 deletions(-) diff --git a/apps/platform/src/components/renderer-adapter/index.vue b/apps/platform/src/components/renderer-adapter/index.vue index dc8a05a..871aba1 100644 --- a/apps/platform/src/components/renderer-adapter/index.vue +++ b/apps/platform/src/components/renderer-adapter/index.vue @@ -79,6 +79,7 @@ .responsive-iframe { width: 100%; height: 100%; + border: none; } diff --git a/apps/platform/src/router/routes/modules/project.ts b/apps/platform/src/router/routes/modules/project.ts index 6f7a392..b0ff666 100644 --- a/apps/platform/src/router/routes/modules/project.ts +++ b/apps/platform/src/router/routes/modules/project.ts @@ -12,6 +12,26 @@ const routes: Array = [ icon: 'ant-design:appstore-outlined', }, children: [ + { + path: 'list', + name: `${moduleName}-list`, + meta: { + title: '项目列表', + keepAlive: true, + icon: 'ant-design:list', + app: { + url: 'https://localhost:10010', + name: 'low-code-platform-project-list', + // sync: true, + // alive: true, + // degrade: true, + applicationId: 0, + projectId: 4, + fileId: '4g4mz6qi8u', + }, + }, + component: () => import('@/components/renderer-adapter/index.vue'), + }, { path: 'add', name: `${moduleName}-add`, diff --git a/apps/renderer/package.json b/apps/renderer/package.json index 7de463b..b8dc7b4 100644 --- a/apps/renderer/package.json +++ b/apps/renderer/package.json @@ -18,9 +18,12 @@ "@sy/web-vitals": "workspace:*", "@tanstack/vue-query": "^5.66.9", "@vtj/core": "^0.10.7", + "@vtj/pro": "^0.10.7", + "@vtj/ui": "^0.10.7", + "@vtj/web": "^0.10.7", + "@vtj/renderer": "^0.10.7", "@vtj/icons": "0.10.7", "@vtj/materials": "^0.10.7", - "@vtj/renderer": "^0.10.7", "axios": "^1.8.1", "core-js": "^3.40.0", "element-plus": "^2.9.4", diff --git a/apps/renderer/src/App.vue b/apps/renderer/src/App.vue index fac5944..2ff0c59 100644 --- a/apps/renderer/src/App.vue +++ b/apps/renderer/src/App.vue @@ -3,11 +3,12 @@ import { computed, watch, ref, getCurrentInstance } from 'vue' import { ElLoading } from 'element-plus' import Postmate from 'postmate' -import { createRenderer, createProvider } from '@vtj/renderer' +import { createProvider } from '@vtj/web' import { useQuery } from '@tanstack/vue-query' - import { LowCodeService } from './service' import { getFile } from './io' +import * as VtjUI from '@vtj/ui' +console.log('VtjUI',VtjUI) // 响应式状态 const renderer = ref() @@ -30,18 +31,22 @@ const { data: file, isFetching } = useQuery({ queryKey: ['getFile'], queryFn: async () => { await handshake.then((parent) => { - parent.emit('sync-context', 'Hello, World!') + // parent.emit('sync-context', 'Hello, World!') Object.assign(model, parent.model) - console.log('model', model) + + // console.log('model', model) }) return getFile(model.fileId).then(() => { const { provider, onReady } = createProvider({ + nodeEnv: import.meta.env.NODE_ENV, service: lowCodeService, - project: { id: '4' } + project: { id: model.projectId }, + components: { + ...VtjUI, + } }) onReady(async () => { - console.log('onReady') const instance = getCurrentInstance() instance?.appContext.app.use(provider) renderer.value = await provider.getRenderComponent(model.fileId) @@ -61,5 +66,7 @@ watch(isFetching, (newVal) => { diff --git a/apps/renderer/src/index.ts b/apps/renderer/src/index.ts index cc37820..85fb92e 100644 --- a/apps/renderer/src/index.ts +++ b/apps/renderer/src/index.ts @@ -2,12 +2,20 @@ import { createApp } from "vue"; import "@sy/web-vitals"; import { IconsPlugin } from "@vtj/icons"; import { VueQueryPlugin } from "@tanstack/vue-query"; - +import * as VtjUI from "@vtj/ui"; import App from "./App.vue"; import ElementPlus from "element-plus"; import "element-plus/dist/index.css"; +import "@vtj/ui/dist/style.css"; -createApp(App) +const app = createApp(App); + +// 批量注册组件 +Object.entries(VtjUI).forEach(([name, component]) => { + console.log("name", name, component); + app.component(name, component); +}); +app .use(ElementPlus) .use(IconsPlugin) .use(VueQueryPlugin) diff --git a/apps/renderer/src/service/index.ts b/apps/renderer/src/service/index.ts index cb221e7..bbcfec0 100644 --- a/apps/renderer/src/service/index.ts +++ b/apps/renderer/src/service/index.ts @@ -32,7 +32,7 @@ export class LowCodeService extends BaseService { } public async getFile(id: string): Promise { - console.log("1111getFile", id); + console.log("service getFile", id); return getLowCodeFile(id).then((lowCodeFile) => { if (lowCodeFile.dsl) { return Promise.resolve(lowCodeFile.dsl as BlockSchema); diff --git a/apps/renderer/tsconfig.json b/apps/renderer/tsconfig.json index b9e2cca..b72af2d 100644 --- a/apps/renderer/tsconfig.json +++ b/apps/renderer/tsconfig.json @@ -7,7 +7,7 @@ "@/*": ["src/*"], "$vtj/*": [".vtj/*"] }, - "lib": ["ES2015", "DOM"], + "lib": ["ES2022", "DOM"], "module": "NodeNext", "target": "ES2022", "moduleResolution": "NodeNext" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c4a95b4..e30d0fe 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -448,9 +448,18 @@ importers: '@vtj/materials': specifier: ^0.10.7 version: 0.10.7 + '@vtj/pro': + specifier: ^0.10.7 + version: 0.10.7(typescript@5.8.2)(vue@3.5.13(typescript@5.8.2)) '@vtj/renderer': specifier: ^0.10.7 version: 0.10.7 + '@vtj/ui': + specifier: ^0.10.7 + version: 0.10.7(typescript@5.8.2)(vue@3.5.13(typescript@5.8.2)) + '@vtj/web': + specifier: ^0.10.7 + version: 0.10.7(typescript@5.8.2)(vue@3.5.13(typescript@5.8.2)) axios: specifier: ^1.8.1 version: 1.8.1(debug@4.4.0) @@ -13152,7 +13161,7 @@ snapshots: '@simonwep/pickr@1.8.2': dependencies: - core-js: 3.40.0 + core-js: 3.41.0 nanopop: 2.4.2 '@sindresorhus/is@4.6.0': {}