修改预览界面样式和按钮位置

This commit is contained in:
zhangshun
2026-06-01 09:20:04 +08:00
parent 6f6be751a9
commit 738476c7f9
2 changed files with 57 additions and 46 deletions

View File

@@ -134,7 +134,7 @@
align-items: center; align-items: center;
justify-content: space-between; justify-content: space-between;
gap: 8px; gap: 8px;
padding: 10px; padding: 0 10px;
border-bottom: 1px solid #d8e0e8; border-bottom: 1px solid #d8e0e8;
} }
@@ -150,7 +150,7 @@
overscroll-behavior: contain; overscroll-behavior: contain;
list-style: none; list-style: none;
margin: 0; margin: 0;
padding: 8px; padding: 5px 0;
} }
.preview-model-meta { .preview-model-meta {
@@ -211,6 +211,7 @@
} }
.preview-process-status { .preview-process-status {
display: none;
min-height: 44px; min-height: 44px;
max-height: 78px; max-height: 78px;
overflow: auto; overflow: auto;

View File

@@ -153,18 +153,14 @@ export function openModelPreview(
</div> </div>
<div class="preview-scene-section"> <div class="preview-scene-section">
<div class="preview-scene-body"> <div class="preview-scene-body">
${canWrite ? ` <div style="display: flex; align-items: center; ">
<button id="previewCaptureThumbBtn" type="button">截缩略图</button> <button id="previewImportSceneBtn" class="primary-btn" type="button">导入</button>
<label class="preview-switch">
<input id="previewTransparentThumb" type="checkbox" />
<span>透明背景截图</span>
</label>
` : ""}
<button id="previewImportSceneBtn" class="primary-btn" type="button">导入场景</button>
<label class="preview-switch"> <label class="preview-switch">
<input id="previewUseBasePoint" type="checkbox" /> <input id="previewUseBasePoint" type="checkbox" />
<span>启用基点导入</span> <span>启用基点</span>
</label> </label>
</div>
<div class="preview-basepoint-grid"> <div class="preview-basepoint-grid">
<label><span>X</span><input name="baseX" type="number" value="0" step="0.001" /></label> <label><span>X</span><input name="baseX" type="number" value="0" step="0.001" /></label>
<label><span>Y</span><input name="baseY" type="number" value="0" step="0.001" /></label> <label><span>Y</span><input name="baseY" type="number" value="0" step="0.001" /></label>
@@ -184,6 +180,13 @@ export function openModelPreview(
</div> </div>
`, `,
actions: { actions: {
() {
if (canWrite) {
screenshotModel(model.id, onThumbnailSaved).catch((error) => {
})
}
},
() { () {
disposePreview(); disposePreview();
w2popup.close(); w2popup.close();
@@ -192,7 +195,8 @@ export function openModelPreview(
}); });
popup.self popup.self
.on("open:after", () => { .on("open:after", () => {popup
console.log(popup)
bindProcessPlaceholder(operations); bindProcessPlaceholder(operations);
bindImportScene(model, operations, options.onImportScene); bindImportScene(model, operations, options.onImportScene);
if (canWrite) bindThumbnailCapture(model.id, onThumbnailSaved); if (canWrite) bindThumbnailCapture(model.id, onThumbnailSaved);
@@ -481,7 +485,14 @@ function disposeMaterial(material: unknown) {
} }
function bindThumbnailCapture(modelId: number, onThumbnailSaved?: () => Promise<void> | void) { function bindThumbnailCapture(modelId: number, onThumbnailSaved?: () => Promise<void> | void) {
document.querySelector<HTMLButtonElement>("#previewCaptureThumbBtn")?.addEventListener("click", async () => { document.querySelector<HTMLButtonElement>("#previewCaptureThumbBtn")?.addEventListener("click", () => {
screenshotModel(modelId, onThumbnailSaved).catch((error) => {
})
});
}
async function screenshotModel(modelId: number, onThumbnailSaved?: () => Promise<void> | void) {
try { try {
if (!runtime) { if (!runtime) {
throw new Error("模型还未加载完成"); throw new Error("模型还未加载完成");
@@ -490,7 +501,7 @@ function bindThumbnailCapture(modelId: number, onThumbnailSaved?: () => Promise<
if (!renderer || !scene || !camera || !controls) { if (!renderer || !scene || !camera || !controls) {
throw new Error("模型还未加载完成"); throw new Error("模型还未加载完成");
} }
const transparent = document.querySelector<HTMLInputElement>("#previewTransparentThumb")?.checked ?? false; const transparent = true; // document.querySelector<HTMLInputElement>("#previewTransparentThumb")?.checked ?? false;
controls.update(); controls.update();
const oldBackground = scene.background; const oldBackground = scene.background;
const oldClearAlpha = renderer.getClearAlpha(); const oldClearAlpha = renderer.getClearAlpha();
@@ -514,7 +525,6 @@ function bindThumbnailCapture(modelId: number, onThumbnailSaved?: () => Promise<
} catch (error) { } catch (error) {
notifyError(error); notifyError(error);
} }
});
} }
function getSelectedOperation(operations: PreviewOperation[]) { function getSelectedOperation(operations: PreviewOperation[]) {