186 lines
		
	
	
		
			6.0 KiB
		
	
	
	
		
			HTML
		
	
	
	
			
		
		
	
	
			186 lines
		
	
	
		
			6.0 KiB
		
	
	
	
		
			HTML
		
	
	
	
| <!--
 | ||
|  * @Author: Billy Chen
 | ||
|  * @Date: 2021-02-26 11:50:20
 | ||
|  * @LastEditors: Billy
 | ||
|  * @LastEditTime: 2021-07-01 11:45:18
 | ||
|  * @Description: iframe 封装 viewer
 | ||
| -->
 | ||
| 
 | ||
| <!DOCTYPE html>
 | ||
| <html>
 | ||
| 
 | ||
| <head>
 | ||
|     <meta charset="utf-8">
 | ||
|     <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
 | ||
|     <meta name="viewport" content="width=device-width,user-scalable=no,minimum-scale=1.0,maximum-scale=1.0">
 | ||
|     <link rel="icon" href="../favicon.ico">
 | ||
|     <title>I3V_EIM_3D</title>
 | ||
| 
 | ||
|     <link href="../eim-0225/EIMMODEL.min.css" rel="stylesheet">
 | ||
|     <link href="../eim-0225/bar-custom.css" rel="stylesheet">
 | ||
| 
 | ||
|     <style>
 | ||
|         html {
 | ||
|             width: 100%;
 | ||
|             height: 100%;
 | ||
|         }
 | ||
| 
 | ||
|         body {
 | ||
|             width: 100%;
 | ||
|             height: 100%;
 | ||
|             margin: 0px;
 | ||
|             overflow: hidden;
 | ||
|         }
 | ||
| 
 | ||
|         #viewer {
 | ||
|             width: 100%;
 | ||
|             height: 100%;
 | ||
|         }
 | ||
| 
 | ||
|         #link-contact {
 | ||
|             z-index: 1000;
 | ||
|             position: absolute;
 | ||
|             right: 10px;
 | ||
|             bottom: 10px;
 | ||
|         }
 | ||
|     </style>
 | ||
| 
 | ||
|     <!-- <script src="../eim-0225/EIMMODEL.min.js" charset="utf-8"></script> -->
 | ||
|     <script src="../eim-0225/EIMMODEL.js" charset="utf-8"></script>
 | ||
| </head>
 | ||
| 
 | ||
| <body>
 | ||
|     <div id="viewer">
 | ||
|         <a id="link-contact" target="_blank" href="../#/login?routeName=Model">联系我们</a>
 | ||
|     </div>
 | ||
| 
 | ||
|     <script>
 | ||
|         var toolOption = {
 | ||
|             home: true, // 是否显示初始化按钮
 | ||
|             fit: true, // 是否显示自适应按钮
 | ||
|             restore: true, // 是否显示还原按钮
 | ||
|             roam: true, // 是否显示漫游按钮
 | ||
|             multiple: true, // 是否显示框选按钮
 | ||
|             hide: true, // 是否显示隐藏按钮
 | ||
|             isolation: true, // 是否显示隔离按钮
 | ||
|             sectioning: true, // 是否显示剖切按钮
 | ||
|             color: true, // 是否显示设置颜色按钮
 | ||
|             setting: true, // 是否显示设置按钮
 | ||
|             attribute: false, // 是否显示属性按钮
 | ||
|             measurement: false, // 是否显示测距按钮
 | ||
|             mark: false, // 标签
 | ||
|             snapshot: false, // 快照
 | ||
|             postil: false // 批注
 | ||
|         };
 | ||
|     </script>
 | ||
| 
 | ||
|     <script>
 | ||
|         var args = {} // 获取url以get方式传入的参数
 | ||
|         // 截取?后面的片段包含的键值
 | ||
|         window.location.search.substr(1).split('&').forEach(item => {
 | ||
|             var [k, v] = item.split('=');
 | ||
|             args[k] = v;
 | ||
|         });
 | ||
| 
 | ||
|         if (!args.projectKey) console.error('url 参数必须包括 projectKey');
 | ||
|         if (!args.modelKeys) console.error('url 参数必须包括 modelKeys');
 | ||
| 
 | ||
|         var MODEL_KEYS = args.modelKeys ? args.modelKeys.split(',') : [];
 | ||
|         var PROJECT_KEY = args.projectKey || ""; // modelDb
 | ||
|         var HOST = args.host || "http://139.9.215.236:82";
 | ||
| 
 | ||
|         // 是否显示工具栏(url传参true为字符串),默认值为true
 | ||
|         var HAS_TOOLBAR = args.hasToolBar === "false" ? false : true;
 | ||
|         // 控制是否显示viewer右上角的6面体(url传参true为字符串),默认值为true
 | ||
|         var HAS_CONTROLLER = args.hasController === "false" ? false : true;
 | ||
|         // viewer的背景颜色
 | ||
|         var BG_COLOR = args.bgColor;
 | ||
| 
 | ||
|         // 1、用于更新本页面(timeStrmp一旦改变,则意味iframe的src改变,src改变会使iframe会自动刷新)
 | ||
|         // 2、用于唯一标识本页面
 | ||
|         var TIMESTAMP = args.timeStamp;
 | ||
| 
 | ||
|         var IS_AUTO_RESIZE = args.isAutoResize ? args.isAutoResize : false;
 | ||
| 
 | ||
|         var SHARE = args.share ? args.share : false;
 | ||
|     </script>
 | ||
| 
 | ||
|     <script>
 | ||
|         if (!SHARE) {
 | ||
|             window.document.getElementById('link-contact').style.display = 'none';
 | ||
|         }
 | ||
|     </script>
 | ||
| 
 | ||
|     <script>
 | ||
|         var option = {
 | ||
|             host: HOST,
 | ||
|             viewport: "viewer"
 | ||
|         }; // viewport指上面div的id 
 | ||
| 
 | ||
|         EIMMODEL.GlobalData.EnableViewController = HAS_CONTROLLER; // 显示viewer右上角的6面体
 | ||
|         var viewer3D = new EIMMODEL.Viewer(option);
 | ||
| 
 | ||
|         // 添加viewer的背景颜色
 | ||
|         if (BG_COLOR) viewer3D.setSceneBackGroundColor(BG_COLOR);
 | ||
| 
 | ||
|         // 添加viewer的工具条
 | ||
|         if (HAS_TOOLBAR) {
 | ||
|             var bosToolBar = new EIMMODEL.UI.ToolBar(viewer3D);
 | ||
|             // bosToolBar.createTool(toolOption);
 | ||
|             bosToolBar.createTool();
 | ||
|         }
 | ||
|     </script>
 | ||
| 
 | ||
|     <script>
 | ||
|         var modelKeysLoaded = [];
 | ||
|         // viewer3D.viewerImpl.modelManager.addEventListener(
 | ||
|         viewer3D.registerModelEventListener(
 | ||
|             EIMMODEL.EVENTS.ON_LOAD_COMPLETE,
 | ||
|             function (event) {
 | ||
|                 if (MODEL_KEYS.includes(event.modelKey)) {
 | ||
|                     modelKeysLoaded.push(event.modelKey);
 | ||
|                 }
 | ||
|                 if (modelKeysLoaded.length >= MODEL_KEYS.length) {
 | ||
|                     // 此时证明模型全加载完了
 | ||
|                     var bEvent = new CustomEvent("allmodelsloaded", {
 | ||
|                         detail: {
 | ||
|                             timeStamp: Number(TIMESTAMP),
 | ||
|                             modelKeys: MODEL_KEYS
 | ||
|                         },
 | ||
|                         bubbles: true, // 是否冒泡
 | ||
|                         cancelable: true // 是否可以取消事件的默认行为
 | ||
|                     });
 | ||
| 
 | ||
|                     window.parent.dispatchEvent(bEvent);
 | ||
|                 }
 | ||
|             }
 | ||
|         );
 | ||
|     </script>
 | ||
| 
 | ||
|     <script>
 | ||
|         // 往viewer添加模型
 | ||
|         if (PROJECT_KEY) {
 | ||
|             if (MODEL_KEYS.length) {
 | ||
|                 // 加载所有模型
 | ||
|                 MODEL_KEYS.forEach(modelKey => {
 | ||
|                     viewer3D.addView(modelKey, PROJECT_KEY);
 | ||
|                 });
 | ||
|             } else {
 | ||
|                 console.error('必须至少提供一个 modelKey');
 | ||
|             }
 | ||
|         } else {
 | ||
|             console.error('projectKey 不能为空');
 | ||
|         }
 | ||
|     </script>
 | ||
| 
 | ||
|     <script>
 | ||
|         if (IS_AUTO_RESIZE) {
 | ||
|             window.addEventListener("resize", function () {
 | ||
|                 // viewer3D.autoResize();
 | ||
|                 viewer3D.getViewerImpl().resize(window.innerWidth, window.innerHeight);
 | ||
|             });
 | ||
|         }
 | ||
|     </script>
 | ||
| </body>
 | ||
| 
 | ||
| </html> |