[前台] forge 突擊平面圖原點配合點位顏色
This commit is contained in:
		
							parent
							
								
									7a6b2068bd
								
							
						
					
					
						commit
						7169c33dc3
					
				
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										3927
									
								
								Frontend/index.html
									
									
									
									
									
								
							
							
						
						
									
										3927
									
								
								Frontend/index.html
									
									
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@ -922,9 +922,9 @@ async function addHotPoint(data) {
 | 
			
		||||
        return;
 | 
			
		||||
    } else {
 | 
			
		||||
        spriteColor = new THREE.Color(0xffffff);
 | 
			
		||||
        spriteIcon = "/file/img/forge/hotspot.svg";
 | 
			
		||||
        spriteIcon = "/file/img/forge/sensor_circle.svg";
 | 
			
		||||
        if (location.href.indexOf("localhost:5966") != -1) {
 | 
			
		||||
            spriteIcon = "/img/forge/hotspot.svg";
 | 
			
		||||
            spriteIcon = "/img/forge/sensor_circle.svg";
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@ -973,7 +973,7 @@ async function addHotPoint(data) {
 | 
			
		||||
                // console.log(`Sprite clicked: ${event.dbId}`);
 | 
			
		||||
 | 
			
		||||
                for (let i = dbIdStart; i <= myDataList.length + 10; i++) {
 | 
			
		||||
                    !alarmDbIdList.some((dbId) => dbId == i) &&
 | 
			
		||||
                    !alarmDbIdList.some(({ spriteDbid }) => spriteDbid == i) &&
 | 
			
		||||
                        pageAct.sysSubTag !== "L1" &&
 | 
			
		||||
                        changeColorForHotspot(i);
 | 
			
		||||
                    changeScaleForHotspot(i, true);
 | 
			
		||||
@ -990,7 +990,7 @@ async function addHotPoint(data) {
 | 
			
		||||
                }
 | 
			
		||||
                $(selector).trigger("autodesk:click:sprite", { event, myData });
 | 
			
		||||
            } else {
 | 
			
		||||
                !alarmDbIdList.some((dbId) => dbId == i) &&
 | 
			
		||||
                !alarmDbIdList.some(({ spriteDbid }) => spriteDbid == event.dbId) &&
 | 
			
		||||
                    pageAct.sysSubTag !== "L1" &&
 | 
			
		||||
                    changeColorForHotspot(event.dbId, null);
 | 
			
		||||
                changeScaleForHotspot(event.dbId, false);
 | 
			
		||||
@ -1038,25 +1038,47 @@ async function addHotPoint(data) {
 | 
			
		||||
    //}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//hex -> rgbsensor_circle
 | 
			
		||||
function hexToRgb(hex) {
 | 
			
		||||
    return (
 | 
			
		||||
        "rgb(" +
 | 
			
		||||
        parseInt("0x" + hex.slice(1, 3)) +
 | 
			
		||||
        "," +
 | 
			
		||||
        parseInt("0x" + hex.slice(3, 5)) +
 | 
			
		||||
        "," +
 | 
			
		||||
        parseInt("0x" + hex.slice(5, 7)) +
 | 
			
		||||
        ")"
 | 
			
		||||
    );
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 熱點 更換顏色
 | 
			
		||||
async function changeColorForHotspot(dbId, type = null, lightOn = false) {
 | 
			
		||||
async function changeColorForHotspot(dbId, type = null, OnOff = false) {
 | 
			
		||||
    const dataVizExtn = await viewer.loadExtension("Autodesk.DataVisualization");
 | 
			
		||||
    let spriteColorFocus = new THREE.Color(0xffffff);
 | 
			
		||||
    if (pageAct.sysSubTag == "L1") {
 | 
			
		||||
        spriteColorFocus = lightOn
 | 
			
		||||
            ? new THREE.Color(0xffd524)
 | 
			
		||||
            : new THREE.Color(0x40525e);
 | 
			
		||||
        if (lightOn) {
 | 
			
		||||
            console.log(dbId);
 | 
			
		||||
        }
 | 
			
		||||
    } else if (type == "focus" && pageAct.sysSubTag !== "M12") {
 | 
			
		||||
 | 
			
		||||
    spriteColorFocus = OnOff
 | 
			
		||||
        ? pageAct.sysSubObj.device_normal_color
 | 
			
		||||
            ? new THREE.Color(hexToRgb(pageAct.sysSubObj.device_normal_color))
 | 
			
		||||
            : new THREE.Color(0xffffff)
 | 
			
		||||
        : pageAct.sysSubObj.device_close_color
 | 
			
		||||
            ? new THREE.Color(hexToRgb(pageAct.sysSubObj.device_close_color))
 | 
			
		||||
            : new THREE.Color(0xffffff);
 | 
			
		||||
 | 
			
		||||
    if (type == "focus") {
 | 
			
		||||
        spriteColorFocus = new THREE.Color(0x00ffe1);
 | 
			
		||||
    } else if (type == "error") {
 | 
			
		||||
        spriteColorFocus = new THREE.Color(0xff0000);
 | 
			
		||||
        spriteColorFocus = new THREE.Color(
 | 
			
		||||
            hexToRgb(pageAct.sysSubObj.device_error_color)
 | 
			
		||||
        );
 | 
			
		||||
        spriteErrIcon = baseForgeApiUrl + "/file/img/forge/sensor_circle.svg";
 | 
			
		||||
        if (location.href.indexOf("localhost:5966") != -1) {
 | 
			
		||||
            spriteErrIcon = baseForgeApiUrl + "/img/forge/sensor_circle.svg";
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    const viewablesToUpdate = dbId;
 | 
			
		||||
    dataVizExtn.invalidateViewables(viewablesToUpdate, (viewable) => {
 | 
			
		||||
        return {
 | 
			
		||||
            url: "/file/img/forge/sensor_circle.svg",
 | 
			
		||||
            color: spriteColorFocus,
 | 
			
		||||
        };
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										2153
									
								
								Frontend/js/site.js
									
									
									
									
									
								
							
							
						
						
									
										2153
									
								
								Frontend/js/site.js
									
									
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
		Loading…
	
		Reference in New Issue
	
	Block a user