Renamed compareSidePanel to dxfComparePanel
This commit is contained in:
@ -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;
|
||||||
@ -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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@ -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);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@ -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);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@ -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
216102
public/demo/models/dxf/doors_and_windows_mopdified.dxf
Normal file
216102
public/demo/models/dxf/doors_and_windows_mopdified.dxf
Normal file
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
Reference in New Issue
Block a user