mirror of
https://github.com/alibaba/lowcode-engine.git
synced 2026-03-07 10:57:19 +00:00
feat: 增加一个渲染画布的加载动画
This commit is contained in:
parent
358ecb3c54
commit
d30753bb5e
@ -8,7 +8,8 @@ import {
|
|||||||
isAssetItem,
|
isAssetItem,
|
||||||
AssetType,
|
AssetType,
|
||||||
assetItem,
|
assetItem,
|
||||||
isCSSUrl } from '@ali/lowcode-utils';
|
isCSSUrl,
|
||||||
|
} from '@ali/lowcode-utils';
|
||||||
|
|
||||||
import { BuiltinSimulatorRenderer } from './renderer';
|
import { BuiltinSimulatorRenderer } from './renderer';
|
||||||
|
|
||||||
@ -36,7 +37,10 @@ export function createSimulator(
|
|||||||
}
|
}
|
||||||
if (isAssetBundle(asset)) {
|
if (isAssetBundle(asset)) {
|
||||||
if (asset.assets) {
|
if (asset.assets) {
|
||||||
parseAssetList(Array.isArray(asset.assets) ? asset.assets : [asset.assets], asset.level || level);
|
parseAssetList(
|
||||||
|
Array.isArray(asset.assets) ? asset.assets : [asset.assets],
|
||||||
|
asset.level || level,
|
||||||
|
);
|
||||||
}
|
}
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@ -50,13 +54,19 @@ export function createSimulator(
|
|||||||
const id = asset.id ? ` data-id="${asset.id}"` : '';
|
const id = asset.id ? ` data-id="${asset.id}"` : '';
|
||||||
const lv = asset.level || level || AssetLevel.Environment;
|
const lv = asset.level || level || AssetLevel.Environment;
|
||||||
if (asset.type === AssetType.JSUrl) {
|
if (asset.type === AssetType.JSUrl) {
|
||||||
(scripts[lv] || scripts[AssetLevel.App]).push(`<script src="${asset.content}"${id}></script>`);
|
(scripts[lv] || scripts[AssetLevel.App]).push(
|
||||||
|
`<script src="${asset.content}"${id}></script>`,
|
||||||
|
);
|
||||||
} else if (asset.type === AssetType.JSText) {
|
} else if (asset.type === AssetType.JSText) {
|
||||||
(scripts[lv] || scripts[AssetLevel.App]).push(`<script${id}>${asset.content}</script>`);
|
(scripts[lv] || scripts[AssetLevel.App]).push(`<script${id}>${asset.content}</script>`);
|
||||||
} else if (asset.type === AssetType.CSSUrl) {
|
} else if (asset.type === AssetType.CSSUrl) {
|
||||||
(styles[lv] || styles[AssetLevel.App]).push(`<link rel="stylesheet" href="${asset.content}"${id} />`);
|
(styles[lv] || styles[AssetLevel.App]).push(
|
||||||
|
`<link rel="stylesheet" href="${asset.content}"${id} />`,
|
||||||
|
);
|
||||||
} else if (asset.type === AssetType.CSSText) {
|
} else if (asset.type === AssetType.CSSText) {
|
||||||
(styles[lv] || styles[AssetLevel.App]).push(`<style type="text/css"${id}>${asset.content}</style>`);
|
(styles[lv] || styles[AssetLevel.App]).push(
|
||||||
|
`<style type="text/css"${id}>${asset.content}</style>`,
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -65,7 +75,7 @@ export function createSimulator(
|
|||||||
|
|
||||||
const styleFrags = Object.keys(styles)
|
const styleFrags = Object.keys(styles)
|
||||||
.map((key) => {
|
.map((key) => {
|
||||||
return `${styles[key].join('\n') }<meta level="${key}" />`;
|
return `${styles[key].join('\n')}<meta level="${key}" />`;
|
||||||
})
|
})
|
||||||
.join('');
|
.join('');
|
||||||
const scriptFrags = Object.keys(scripts)
|
const scriptFrags = Object.keys(scripts)
|
||||||
@ -75,9 +85,27 @@ export function createSimulator(
|
|||||||
.join('');
|
.join('');
|
||||||
|
|
||||||
doc.open();
|
doc.open();
|
||||||
doc.write(`<!doctype html><html class="engine-design-mode"><head><meta charset="utf-8"/>
|
doc.write(`
|
||||||
${styleFrags}
|
<!doctype html>
|
||||||
</head><body>${scriptFrags}</body></html>`);
|
<html class="engine-design-mode">
|
||||||
|
<head><meta charset="utf-8"/>
|
||||||
|
${styleFrags}
|
||||||
|
<style>
|
||||||
|
#engine-skeleton-wrapper {
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
height: 90vh;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="app">
|
||||||
|
<div id="engine-skeleton-wrapper"><img width="154" height="100" src="https://img.alicdn.com/tfs/TB1CmVgayERMeJjy0FcXXc7opXa-308-200.gif" /></div>
|
||||||
|
</div>
|
||||||
|
${scriptFrags}
|
||||||
|
</body>
|
||||||
|
</html>`);
|
||||||
doc.close();
|
doc.close();
|
||||||
|
|
||||||
return new Promise((resolve) => {
|
return new Promise((resolve) => {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user