Renamed compareSidePanel to dxfComparePanel

This commit is contained in:
yanzexuan
2022-12-28 17:58:49 +08:00
parent b512a40509
commit 389ef59e55
9 changed files with 220196 additions and 29652 deletions

View File

@ -9,7 +9,7 @@ b {
.compare-panel-container { .compare-panel-container {
position: absolute; position: absolute;
top: 80px; top: 80px;
right: 0; right: 10px;
width: 160px; width: 160px;
height: auto; height: auto;
min-height: 200px; min-height: 200px;

View File

@ -1,5 +1,5 @@
/* eslint-disable no-undef */ /* eslint-disable no-undef */
export default class CompareSidePanel { export default class DxfComparePanel {
compareDetail; compareDetail;
container; container;
viewer; viewer;
@ -29,13 +29,16 @@ export default class CompareSidePanel {
panelContainer.appendChild(compareDetail); panelContainer.appendChild(compareDetail);
this.compareDetail = compareDetail; this.compareDetail = compareDetail;
const changes = this.viewer.changes; const changes = this.viewer.getCompareChanges();
if (!changes) {
return;
}
const changesValues = Object.values(changes); const changesValues = Object.values(changes);
header.innerHTML = `差异列表(${changesValues.length})`; header.innerHTML = `差异列表(${changesValues.length})`;
const addedChangesValues = changesValues.filter((val) => val.type === "Added"); const addedChangesValues = changesValues.filter((val) => val.type === "Added");
const deletedChangeValues = changesValues.filter((val) => val.type === "Deleted"); const deletedChangeValues = changesValues.filter((val) => val.type === "Removed");
const modifiedChanageValues = changesValues.filter((val) => val.type === "Modified"); const modifiedChanageValues = changesValues.filter((val) => val.type === "Modified");
if (addedChangesValues.length > 0) { if (addedChangesValues.length > 0) {
@ -62,7 +65,7 @@ export default class CompareSidePanel {
let listFragment = ""; let listFragment = "";
changesValues.forEach((val) => { changesValues.forEach((val) => {
listFragment += `<li class="list-item">${val.handle}</li>`; listFragment += `<li data-id=${val.id} class="list-item">${val.handle}</li>`;
}); });
listEle.innerHTML = listFragment; listEle.innerHTML = listFragment;
} }
@ -94,8 +97,15 @@ export default class CompareSidePanel {
const lists = document.querySelectorAll(".list"); const lists = document.querySelectorAll(".list");
lists.forEach((list) => { lists.forEach((list) => {
list.addEventListener("click", (e) => { list.addEventListener("click", (e) => {
this.viewer.zoomToCompareChange(e.target.innerHTML); if (e.target.tagName.toUpperCase() === "LI" && e.target.dataset.id) {
this.viewer.zoomToCompareChange(e.target.dataset.id);
}
}); });
}); });
} }
destroy() {
this.container.remove();
this.container = undefined;
}
} }

View File

@ -4,7 +4,7 @@
<link rel="icon" href="./demo/favicon.ico" /> <link rel="icon" href="./demo/favicon.ico" />
<link rel="stylesheet" type="text/css" href="./demo/global.css" /> <link rel="stylesheet" type="text/css" href="./demo/global.css" />
<link rel="stylesheet" type="text/css" href="./demo/iconfont/iconfont.css" /> <link rel="stylesheet" type="text/css" href="./demo/iconfont/iconfont.css" />
<link rel="stylesheet" href="./demo/compare/compareSidePanel.css" /> <link rel="stylesheet" href="./demo/compare/dxfComparePanel.css" />
<link rel="stylesheet" href="./demo/layerManager/layerManager.css" /> <link rel="stylesheet" href="./demo/layerManager/layerManager.css" />
<link rel="stylesheet" href="./demo/settings/SettingsPanel.css" /> <link rel="stylesheet" href="./demo/settings/SettingsPanel.css" />
</head> </head>
@ -15,12 +15,12 @@
</div> </div>
<script type="module"> <script type="module">
import { DxfViewer } from "./demo/libs/gemini-viewer.esm.min.js"; import { DxfViewer } from "./demo/libs/gemini-viewer.esm.min.js";
import DxfCompareSidePanel from "./demo/compare/compareSidePanel.js" import DxfComparePanel from "./demo/compare/dxfComparePanel.js"
import DxfSettingsPanel from "./demo/settings/DxfSettingsPanel.js"; import DxfSettingsPanel from "./demo/settings/DxfSettingsPanel.js";
import LayerManager from "./demo/layerManager/LayerManager.js"; import LayerManager from "./demo/layerManager/LayerManager.js";
const url1 = "./demo/models/dxf/dxf_3.dxf"; const url1 = "./demo/models/dxf/doors_and_windows.dxf";
const url2 = "./demo/models/dxf/dxf_3_1.dxf"; const url2 = "./demo/models/dxf/doors_and_windows_mopdified.dxf";
const config = { const config = {
containerId: "myCanvas", containerId: "myCanvas",
enableAxisGizmo: true, enableAxisGizmo: true,
@ -38,13 +38,13 @@
const progress = ((event.loaded * 100) / event.total).toFixed(1); const progress = ((event.loaded * 100) / event.total).toFixed(1);
console.log(`[Demo] Loading progress: ${progress}%`); console.log(`[Demo] Loading progress: ${progress}%`);
}; };
await viewer.compare({src: url1, modelId: "dxf_3.dxf"}, {src: url2, modelId: "dxf_3_1.dxf"}, onProgress).then(() => { await viewer.compare({src: url1, modelId: "doors_and_windows.dxf"}, {src: url2, modelId: "doors_and_windows_mopdified.dxf"}, onProgress).then(() => {
console.log(`[Demo] Compared models: ${url1}, ${url2}`); console.log(`[Demo] Compared models: ${url1}, ${url2}`);
if (!viewer.layerManager) { if (!viewer.layerManager) {
viewer.layerManager = new LayerManager(viewer); viewer.layerManager = new LayerManager(viewer);
} }
if (!viewer.dxfCompareSidePanel) { if (!viewer.dxfComparePanel) {
viewer.dxfCompareSidePanel = new DxfCompareSidePanel(viewer); viewer.dxfComparePanel = new DxfComparePanel(viewer);
} }
}); });

View File

@ -4,7 +4,7 @@
<link rel="icon" href="./demo/favicon.ico" /> <link rel="icon" href="./demo/favicon.ico" />
<link rel="stylesheet" type="text/css" href="./demo/global.css" /> <link rel="stylesheet" type="text/css" href="./demo/global.css" />
<link rel="stylesheet" type="text/css" href="./demo/iconfont/iconfont.css" /> <link rel="stylesheet" type="text/css" href="./demo/iconfont/iconfont.css" />
<link rel="stylesheet" href="./demo/compare/compareSidePanel.css" /> <link rel="stylesheet" href="./demo/compare/dxfComparePanel.css" />
<link rel="stylesheet" href="./demo/layerManager/layerManager.css" /> <link rel="stylesheet" href="./demo/layerManager/layerManager.css" />
<link rel="stylesheet" href="./demo/settings/SettingsPanel.css" /> <link rel="stylesheet" href="./demo/settings/SettingsPanel.css" />
<style> <style>
@ -63,14 +63,14 @@
</div> </div>
<script type="module"> <script type="module">
import { DxfViewer } from "./demo/libs/gemini-viewer.esm.min.js"; import { DxfViewer } from "./demo/libs/gemini-viewer.esm.min.js";
import DxfCompareSidePanel from "./demo/compare/compareSidePanel.js" import DxfComparePanel from "./demo/compare/dxfComparePanel.js"
import DxfSettingsPanel from "./demo/settings/DxfSettingsPanel.js"; import DxfSettingsPanel from "./demo/settings/DxfSettingsPanel.js";
import LayerManager from "./demo/layerManager/LayerManager.js"; import LayerManager from "./demo/layerManager/LayerManager.js";
const url1 = "./demo/models/dxf/dxf_3.dxf"; const url1 = "./demo/models/dxf/doors_and_windows.dxf";
const url2 = "./demo/models/dxf/dxf_3_1.dxf"; const url2 = "./demo/models/dxf/doors_and_windows_mopdified.dxf";
const modelConfig1 = { modelId: "dxf_3", name: "dxf 1", src: url1, ignorePaperSpace: true }; const modelConfig1 = { modelId: "doors_and_windows", name: "dxf 1", src: url1, ignorePaperSpace: true };
const modelConfig2 = { modelId: "dxf_3_1", name: "dxf 2", src: url2, ignorePaperSpace: true }; const modelConfig2 = { modelId: "doors_and_windows_mopdified", name: "dxf 2", src: url2, ignorePaperSpace: true };
const config = { const config = {
containerId: "myCanvas3", containerId: "myCanvas3",
enableAxisGizmo: true, enableAxisGizmo: true,
@ -98,8 +98,8 @@
if (!viewer3.layerManager) { if (!viewer3.layerManager) {
viewer3.layerManager = new LayerManager(viewer3); viewer3.layerManager = new LayerManager(viewer3);
} }
if (!viewer3.dxfCompareSidePanel) { if (!viewer3.dxfComparePanel) {
viewer3.dxfCompareSidePanel = new DxfCompareSidePanel(viewer3); viewer3.dxfComparePanel = new DxfComparePanel(viewer3);
} }
}); });

View File

@ -23,7 +23,7 @@ input[type="color"] {
.popup-container { .popup-container {
position: absolute; position: absolute;
top: 76px; top: 76px;
left: calc(5%); right: 10px;
width: 330px; width: 330px;
height: 600px; height: 600px;
max-height: 90%; /* fix the issue when canvas's height is less than 600px */ max-height: 90%; /* fix the issue when canvas's height is less than 600px */

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff