From 9a2f29e3e4f15e933656ad43372d39d57abe512d Mon Sep 17 00:00:00 2001 From: wangxuefeng Date: Wed, 19 Mar 2025 16:11:29 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=90=84=E5=BA=94=E7=94=A8=E7=9A=84?= =?UTF-8?q?=E8=AE=BE=E8=AE=A1=E5=99=A8=E9=9A=94=E7=A6=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/designer/.env.development | 4 +- apps/designer/src/views/index.vue | 5 +- .../platform/src/router/routes/modules/acl.ts | 10 ++-- .../src/router/routes/modules/application.ts | 10 ++-- .../src/router/routes/modules/micro.ts | 59 ++++++++++++------- .../src/router/routes/modules/project.ts | 15 ++--- apps/renderer/src/App.vue | 20 ++++++- apps/renderer/src/service/index.ts | 7 ++- .../layouts/src/basic/content/content.vue | 2 +- .../renderer-adapter/vue3/src/adapter.vue | 2 +- .../wujie-vue3/src/adapter.vue | 1 + 11 files changed, 82 insertions(+), 53 deletions(-) diff --git a/apps/designer/.env.development b/apps/designer/.env.development index f08373b..5b8fe7d 100644 --- a/apps/designer/.env.development +++ b/apps/designer/.env.development @@ -5,8 +5,8 @@ VITE_NODE_ENV = 'development' VITE_BASE_URL = / VITE_PORT = 10011 -# VITE_BASE_API_URL = 'https://custom-chart-pre-api.shiyue.com/' -VITE_BASE_API_URL = 'https://custom-chart-api.shiyuegame.com/' +VITE_BASE_API_URL = 'https://custom-chart-pre-api.shiyue.com/' +# VITE_BASE_API_URL = 'https://custom-chart-api.shiyuegame.com/' VITE_DEBUG_MODE = true diff --git a/apps/designer/src/views/index.vue b/apps/designer/src/views/index.vue index 02e6696..1cd7218 100644 --- a/apps/designer/src/views/index.vue +++ b/apps/designer/src/views/index.vue @@ -25,7 +25,7 @@ onMounted(async () => { await handshake.then((parent) => { parent.emit('sync-context', 'y-code-designer is ready'); Object.assign(model, parent.model); - // console.log('get parent model', model); + console.log('get parent model', model); userStore.setToken(model.accessToken); localStorage.setItem('y-code-access-token', model.accessToken); request.useRequest((req) => { @@ -49,9 +49,7 @@ onMounted(async () => { widgetManager.set('Previewer', { props: { path: (block: any) => { - console.log('block', block); const pathname = location.pathname; - console.log('pathname', pathname); return `${pathname}#/preview/${block.id}`; } } @@ -79,6 +77,5 @@ onMounted(async () => { .designer-container { width: 100%; height: 100%; - min-height: calc(100vh - 126px); } diff --git a/apps/platform/src/router/routes/modules/acl.ts b/apps/platform/src/router/routes/modules/acl.ts index 60ee0dc..edc6b00 100644 --- a/apps/platform/src/router/routes/modules/acl.ts +++ b/apps/platform/src/router/routes/modules/acl.ts @@ -2,7 +2,7 @@ import type { RouteRecordRaw } from 'vue-router'; import WujieVueRendererAdapter from '@sy/wujie-vue3-renderer-adapter'; -import { VITE_RENDERER_URL } from '#/constants'; +import { LOW_CODE_PROJECT_ID, VITE_RENDERER_URL } from '#/constants'; const moduleName = 'acl'; @@ -18,7 +18,7 @@ const routes: Array = [ children: [ { path: 'list', - name: `${moduleName}-list`, + name: 'AclList', meta: { hideInMenu: true, title: '权限列表', @@ -30,13 +30,13 @@ const routes: Array = [ url: `${VITE_RENDERER_URL}`, accessToken: localStorage.getItem('y-code-access-token'), fileId: '1hsd0407hf', - projectId: '4', + projectId: LOW_CODE_PROJECT_ID, degrade: false, }, }, { path: 'user', - name: `${moduleName}-user`, + name: 'AclUser', meta: { title: '用户列表', keepAlive: true, @@ -47,7 +47,7 @@ const routes: Array = [ url: `${VITE_RENDERER_URL}`, accessToken: localStorage.getItem('y-code-access-token'), fileId: '7pfu5radx', - projectId: '4', + projectId: LOW_CODE_PROJECT_ID, degrade: false, }, }, diff --git a/apps/platform/src/router/routes/modules/application.ts b/apps/platform/src/router/routes/modules/application.ts index 6e51722..4e7ab4b 100644 --- a/apps/platform/src/router/routes/modules/application.ts +++ b/apps/platform/src/router/routes/modules/application.ts @@ -2,7 +2,7 @@ import type { RouteRecordRaw } from 'vue-router'; import WujieVueRendererAdapter from '@sy/wujie-vue3-renderer-adapter'; -import { VITE_RENDERER_URL } from '#/constants'; +import { LOW_CODE_PROJECT_ID, VITE_RENDERER_URL } from '#/constants'; import { router } from '#/router'; // 微前端路由 @@ -11,7 +11,7 @@ const moduleName = 'application'; const routes: Array = [ { path: '/application', - name: moduleName, + name: 'Application', meta: { title: '应用管理', icon: 'ant-design:appstore-outlined', @@ -19,7 +19,7 @@ const routes: Array = [ children: [ { path: 'list', - name: `${moduleName}-list`, + name: 'ApplicationList', meta: { title: '应用列表', keepAlive: false, @@ -31,8 +31,8 @@ const routes: Array = [ url: `${VITE_RENDERER_URL}`, accessToken: localStorage.getItem('y-code-access-token'), fileId: 'b91n1y9yr', - projectId: '4', - getRouter: () => router, + projectId: LOW_CODE_PROJECT_ID, + router, route, degrade: false, height: '100%', diff --git a/apps/platform/src/router/routes/modules/micro.ts b/apps/platform/src/router/routes/modules/micro.ts index 3980c99..bd63e7d 100644 --- a/apps/platform/src/router/routes/modules/micro.ts +++ b/apps/platform/src/router/routes/modules/micro.ts @@ -3,7 +3,13 @@ import type { RouteRecordRaw } from 'vue-router'; import RendererAdapter from '@sy/vue3-renderer-adapter'; import WujieVueRendererAdapter from '@sy/wujie-vue3-renderer-adapter'; -import { VITE_DESIGNER_URL, VITE_RENDERER_URL, VITE_V1_URL } from '#/constants'; +import { + isDevMode, + LOW_CODE_PROJECT_ID, + VITE_DESIGNER_URL, + VITE_RENDERER_URL, + VITE_V1_URL, +} from '#/constants'; const moduleName = 'micro'; @@ -17,34 +23,43 @@ const routes: RouteRecordRaw[] = [ }, children: [ { - path: 'designer', - name: `${moduleName}-designer`, + path: 'admin-designer', + name: 'AdminDesigner', meta: { - // keepAlive: false, - title: '低代码编辑器', + hideInMenu: !isDevMode, + title: '平台设计器', icon: 'ant-design:edit-outlined', }, - // component: WujieVueRendererAdapter, - // props: { - // url: `${VITE_DESIGNER_URL}`, - // fileId: '4g4mz6qi8u', - // projectId: 4, - // name: '4g4mz6qi8u', - // sync: false, - // degrade: false, - // }, component: RendererAdapter, - props: { - url: `${VITE_DESIGNER_URL}`, - accessToken: localStorage.getItem('y-code-access-token'), - fileId: '4g4mz6qi8u', - projectId: '4', - name: 'y-code-designer', + props: (route) => { + return { + url: `${VITE_DESIGNER_URL}`, + projectId: LOW_CODE_PROJECT_ID, + name: 'admin-designer', + route, + }; + }, + }, + { + path: 'y-code-designer', + name: 'YCodeDesigner', + meta: { + title: '低代码设计器', + icon: 'ant-design:edit-outlined', + }, + component: RendererAdapter, + props: (route) => { + return { + url: `${VITE_DESIGNER_URL}`, + projectId: route.query.projectId, + name: `y-code-designer-${route.params.projectId}`, + route, + }; }, }, { path: 'y-code-v1', - name: `${moduleName}-y-code-v1`, + name: 'YCodeV1', meta: { keepAlive: false, title: '悦码 1.0', @@ -68,7 +83,7 @@ const routes: RouteRecordRaw[] = [ props: { url: `${VITE_RENDERER_URL}`, fileId: '45ud9h6n3', - projectId: 4, + projectId: LOW_CODE_PROJECT_ID, degrade: false, name: '45ud9h6n3', }, diff --git a/apps/platform/src/router/routes/modules/project.ts b/apps/platform/src/router/routes/modules/project.ts index 87ad538..485e32f 100644 --- a/apps/platform/src/router/routes/modules/project.ts +++ b/apps/platform/src/router/routes/modules/project.ts @@ -2,7 +2,7 @@ import type { RouteRecordRaw } from 'vue-router'; import WujieVueRendererAdapter from '@sy/wujie-vue3-renderer-adapter'; -import { VITE_RENDERER_URL } from '#/constants'; +import { LOW_CODE_PROJECT_ID, VITE_RENDERER_URL } from '#/constants'; import { router } from '#/router'; // 微前端路由 @@ -19,10 +19,9 @@ const routes: Array = [ children: [ { path: 'list', - name: `${moduleName}-list`, + name: 'ProjectList', meta: { title: '项目列表', - keepAlive: true, icon: 'ant-design:list', hideInMenu: true, }, @@ -32,20 +31,18 @@ const routes: Array = [ url: `${VITE_RENDERER_URL}`, accessToken: localStorage.getItem('y-code-access-token'), fileId: '4g4mz6qi8u', - projectId: '4', - // degrade: true, - getRouter: () => router, + projectId: LOW_CODE_PROJECT_ID, + router, route, }; }, }, { path: 'DSLFileList', - name: `${moduleName}-DSL-file-list`, + name: 'DSLFileList', meta: { hideInMenu: true, title: 'dsl 文件列表', - keepAlive: false, icon: 'ant-design:file', }, component: WujieVueRendererAdapter, @@ -54,7 +51,7 @@ const routes: Array = [ url: `${VITE_RENDERER_URL}`, accessToken: localStorage.getItem('y-code-access-token'), fileId: '45ucatjys', - projectId: '4', + projectId: LOW_CODE_PROJECT_ID, getRouter: () => router, route, }; diff --git a/apps/renderer/src/App.vue b/apps/renderer/src/App.vue index c299e37..8595e87 100644 --- a/apps/renderer/src/App.vue +++ b/apps/renderer/src/App.vue @@ -10,6 +10,11 @@ import { LowCodeService } from './service'; // 定义 wujie props 的类型 interface WujieProps { + // 增加一个 axios 请求拦截器 + interceptors?: { + request?: (config: any) => any; + response?: (response: any) => any; + }; accessToken?: string; applicationId?: number | string; fileId?: string; @@ -33,6 +38,14 @@ const loadingInstance = ref(null); const initRequestConfig = (token: string) => { if (!token) return; + if (wujieProps.interceptors?.request) { + request.useRequest(wujieProps.interceptors.request); + } + + if (wujieProps.interceptors?.response) { + request.useResponse(wujieProps.interceptors.response); + } + request.useRequest((req) => { req.headers.set('Authorization', `Bearer ${token}`); return req; @@ -166,7 +179,12 @@ onMounted(async () => {