feat: 无界渲染适配器

This commit is contained in:
wangxuefeng
2025-03-18 16:44:01 +08:00
parent 6c1c8b87a4
commit a2d308bc1a
9 changed files with 191 additions and 539 deletions

View File

@@ -6,8 +6,15 @@ import { jsonp, request } from '@vtj/utils';
import { createProvider } from '@vtj/web';
import { ElLoading, ElMessage } from 'element-plus';
import { getFile } from './io';
import { LowCodeService } from './service';
console.log('window', window);
const rawWindow = window;
console.log('window.$wujie', window.$wujie);
// 定义 wujie props 的类型
interface WujieProps {
accessToken?: string;
@@ -19,15 +26,9 @@ interface WujieProps {
}
// 从 wujie props 获取数据,提供默认值
const wujieProps: WujieProps = window.$wujie?.props || {
fileId,
projectId,
};
const wujieProps: WujieProps = window.$wujie?.props || {};
console.log('wujie props:', wujieProps);
// 文件加载时,清空一次 sessionStorage
sessionStorage.clear();
// 响应式状态
const renderer = ref();
const lowCodeService = new LowCodeService();
@@ -103,11 +104,15 @@ const getRenderComponent = async () => {
const instance = getCurrentInstance();
instance?.appContext.app.use(lowCodeProvider);
try {
const renderComponent = await lowCodeProvider.getRenderComponent(
wujieProps.fileId,
const file = await getFile(wujieProps.fileId);
const { renderer } = await lowCodeProvider.createDslRenderer(
file.published_dsl,
{
// window: rawWindow,
},
);
console.log('渲染组件获取成功');
resolve(renderComponent);
resolve(renderer);
} catch (error) {
console.error('获取渲染组件失败:', error);
ElMessage.error('获取渲染组件失败');