feat: 渲染器支持 echart 渲染

This commit is contained in:
wangxuefeng
2025-03-19 14:45:09 +08:00
parent 9b39f265d3
commit a4c5f633cf
17 changed files with 786 additions and 176 deletions

View File

@@ -15,17 +15,17 @@
"typecheck": "vue-tsc --noEmit --skipLibCheck"
},
"dependencies": {
"@vtj/core": "^0.11.1",
"@vtj/designer": "0.11.1",
"@vtj/icons": "0.11.1",
"@vtj/local": "^0.11.1",
"@vtj/materials": "^0.11.1",
"@vtj/core": "^0.11.2",
"@vtj/designer": "0.11.2",
"@vtj/icons": "0.11.2",
"@vtj/local": "^0.11.2",
"@vtj/materials": "^0.11.2",
"@vtj/node": "0.11.1",
"@vtj/pro": "^0.11.1",
"@vtj/renderer": "^0.11.1",
"@vtj/ui": "^0.11.1",
"@vtj/utils": "0.11.1",
"@vtj/web": "^0.11.1",
"@vtj/pro": "^0.11.2",
"@vtj/renderer": "^0.11.2",
"@vtj/ui": "^0.11.2",
"@vtj/utils": "0.11.2",
"@vtj/web": "^0.11.2",
"axios": "^1.8.1",
"element-plus": "^2.9.4",
"licia-es": "^1.46.0",

File diff suppressed because one or more lines are too long

View File

@@ -16,8 +16,6 @@ const forbiddenComponent = () => import('#/views/_core/fallback/forbidden.vue');
async function generateAccess(options: GenerateMenuAndRoutesOptions) {
const pageMap: ComponentRecordType = import.meta.glob('../views/**/*.vue');
console.log('pageMap', pageMap);
const layoutMap: ComponentRecordType = {
BasicLayout,
IFrameView,

View File

@@ -95,7 +95,6 @@ function setupAccessGuard(router: Router) {
// 当前登录用户拥有的角色标识列表
// const userInfo = userStore.userInfo || (await authStore.fetchUserInfo());
const userInfo = userStore.userInfo;
console.log('userInfo', userInfo);
const userRoles = userInfo?.roles ?? [];
// 生成菜单和路由
const { accessibleMenus, accessibleRoutes } = await generateAccess({

View File

@@ -20,6 +20,7 @@ const routes: Array<RouteRecordRaw> = [
path: 'list',
name: `${moduleName}-list`,
meta: {
hideInMenu: true,
title: '权限列表',
keepAlive: true,
icon: 'ant-design:list',
@@ -30,6 +31,7 @@ const routes: Array<RouteRecordRaw> = [
accessToken: localStorage.getItem('y-code-access-token'),
fileId: '1hsd0407hf',
projectId: '4',
degrade: false,
},
},
{
@@ -37,7 +39,7 @@ const routes: Array<RouteRecordRaw> = [
name: `${moduleName}-user`,
meta: {
title: '用户列表',
keepAlive: false,
keepAlive: true,
icon: 'ant-design:list',
},
component: WujieVueRendererAdapter,
@@ -46,6 +48,7 @@ const routes: Array<RouteRecordRaw> = [
accessToken: localStorage.getItem('y-code-access-token'),
fileId: '7pfu5radx',
projectId: '4',
degrade: false,
},
},
],

View File

@@ -34,8 +34,8 @@ const routes: Array<RouteRecordRaw> = [
projectId: '4',
getRouter: () => router,
route,
degrade: false,
height: '100%',
// degrade: true,
};
},
},

View File

@@ -1,8 +1,9 @@
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_V1_URL } from '#/constants';
import { VITE_DESIGNER_URL, VITE_RENDERER_URL, VITE_V1_URL } from '#/constants';
const moduleName = 'micro';
@@ -55,6 +56,23 @@ const routes: RouteRecordRaw[] = [
accessToken: localStorage.getItem('y-code-access-token'),
},
},
{
path: 'test',
name: `Test`,
meta: {
keepAlive: false,
title: '测试',
icon: 'ant-design:delete-outlined',
},
component: WujieVueRendererAdapter,
props: {
url: `${VITE_RENDERER_URL}`,
fileId: '45ud9h6n3',
projectId: 4,
degrade: false,
name: '45ud9h6n3',
},
},
],
},
];

View File

@@ -43,14 +43,13 @@ const routes: Array<RouteRecordRaw> = [
path: 'DSLFileList',
name: `${moduleName}-DSL-file-list`,
meta: {
hideInMenu: true,
title: 'dsl 文件列表',
keepAlive: false,
icon: 'ant-design:file',
},
component: WujieVueRendererAdapter,
props: (route) => {
console.log('route', route);
console.log('route.query', route.query);
return {
url: `${VITE_RENDERER_URL}`,
accessToken: localStorage.getItem('y-code-access-token'),

View File

@@ -28,7 +28,7 @@ const routes: RouteRecordRaw[] = [
fileId: '7pfr394d6',
projectId: 4,
name: '7pfr394d6',
degrade: true,
degrade: false,
getRouter: () => router,
},
},

View File

@@ -17,14 +17,15 @@
"@sentry/vue": "^9.5.0",
"@sy/web-vitals": "workspace:*",
"@tanstack/vue-query": "^5.66.9",
"@vtj/core": "^0.11.1",
"@vtj/icons": "0.11.1",
"@vtj/materials": "^0.11.1",
"@vtj/pro": "^0.11.1",
"@vtj/renderer": "^0.11.1",
"@vtj/ui": "^0.11.1",
"@vtj/utils": "^0.11.1",
"@vtj/web": "^0.11.1",
"@vtj/charts": "^0.11.2",
"@vtj/core": "^0.11.2",
"@vtj/icons": "0.11.2",
"@vtj/materials": "^0.11.2",
"@vtj/pro": "^0.11.2",
"@vtj/renderer": "^0.11.2",
"@vtj/ui": "^0.11.2",
"@vtj/utils": "^0.11.2",
"@vtj/web": "^0.11.2",
"axios": "catalog:",
"core-js": "^3.40.0",
"element-plus": "catalog:",

View File

@@ -2,6 +2,7 @@ import { createApp } from 'vue';
import * as Sentry from '@sentry/vue';
import { VueQueryPlugin } from '@tanstack/vue-query';
import * as VtjCharts from '@vtj/charts';
import { IconsPlugin } from '@vtj/icons';
import * as VtjUI from '@vtj/ui';
import ElementPlus from 'element-plus';
@@ -22,6 +23,9 @@ Sentry.init({
Object.entries(VtjUI).forEach(([name, component]) => {
app.component(name, component);
});
Object.entries(VtjCharts).forEach(([name, component]) => {
app.component(name, component);
});
app
.use(ElementPlus)
.use(IconsPlugin)

View File

@@ -16,7 +16,6 @@ export class LowCodeService extends BaseService {
public async init(project: ProjectSchema) {
// @ts-ignore 忽略错误
const remoteProject = await getProject(project.id);
console.log('remoteProject', remoteProject);
const model = new ProjectModel(remoteProject);
const dsl = model.toDsl();
return dsl;