照明設備開關 bug 修正
This commit is contained in:
		
							parent
							
								
									605f3f8f87
								
							
						
					
					
						commit
						4e96375be4
					
				@ -6,29 +6,23 @@
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<!-- Modal center Add -->
 | 
			
		||||
<div
 | 
			
		||||
  class="modal fade"
 | 
			
		||||
  id="lightSchModal"
 | 
			
		||||
  tabindex="-1"
 | 
			
		||||
  role="dialog"
 | 
			
		||||
  aria-hidden="true"
 | 
			
		||||
  data-backdrop="static"
 | 
			
		||||
  data-keyboard="false"
 | 
			
		||||
>
 | 
			
		||||
  <div
 | 
			
		||||
    class="modal-dialog modal-dialog-centered"
 | 
			
		||||
    role="document"
 | 
			
		||||
    style="min-width: 60%"
 | 
			
		||||
  >
 | 
			
		||||
<div class="modal fade"
 | 
			
		||||
     id="lightSchModal"
 | 
			
		||||
     tabindex="-1"
 | 
			
		||||
     role="dialog"
 | 
			
		||||
     aria-hidden="true"
 | 
			
		||||
     data-backdrop="static"
 | 
			
		||||
     data-keyboard="false">
 | 
			
		||||
  <div class="modal-dialog modal-dialog-centered"
 | 
			
		||||
       role="document"
 | 
			
		||||
       style="min-width: 60%">
 | 
			
		||||
    <div class="modal-content">
 | 
			
		||||
      <div class="modal-header">
 | 
			
		||||
        <h4 class="modal-title">燈控排程</h4>
 | 
			
		||||
        <button
 | 
			
		||||
          type="button"
 | 
			
		||||
          class="close"
 | 
			
		||||
          data-dismiss="modal"
 | 
			
		||||
          aria-label="Close"
 | 
			
		||||
        >
 | 
			
		||||
        <button type="button"
 | 
			
		||||
                class="close"
 | 
			
		||||
                data-dismiss="modal"
 | 
			
		||||
                aria-label="Close">
 | 
			
		||||
          <span aria-hidden="true"><i class="fal fa-times"></i></span>
 | 
			
		||||
        </button>
 | 
			
		||||
      </div>
 | 
			
		||||
@ -59,6 +53,7 @@
 | 
			
		||||
  var forgeInvTypeDef = null;
 | 
			
		||||
 | 
			
		||||
  $(function () {
 | 
			
		||||
    $(loadEle).Loading("start");
 | 
			
		||||
    getBuildMenu((arr, data) => {
 | 
			
		||||
      buildMenuData = data;
 | 
			
		||||
      if (arr.indexOf(4) != -1) {
 | 
			
		||||
@ -162,15 +157,31 @@
 | 
			
		||||
        if (lightOn) {
 | 
			
		||||
          setLightValues(matchDevice.device_guid, 200, 0xe1cf18);
 | 
			
		||||
          // changeColorForHotspot(matchDevice.spriteDbid, null, true)
 | 
			
		||||
          lightOnHotColorArr.push(matchDevice.spriteDbid);
 | 
			
		||||
          if (
 | 
			
		||||
            !lightOnHotColorArr.some(
 | 
			
		||||
              ({ spriteDbid }) => spriteDbid === matchDevice.spriteDbid
 | 
			
		||||
            )
 | 
			
		||||
          ) {
 | 
			
		||||
            lightOnHotColorArr.push(matchDevice);
 | 
			
		||||
          }
 | 
			
		||||
          lightOffHotColorArr = lightOffHotColorArr.filter(
 | 
			
		||||
            (light) => light.spriteDbid !== matchDevice.spriteDbid
 | 
			
		||||
          );
 | 
			
		||||
          heatMap?.changeTemp(matchDevice.device_number, 40);
 | 
			
		||||
        } else {
 | 
			
		||||
          setLightValues(matchDevice.device_guid, 0, 0xffffff);
 | 
			
		||||
          // changeColorForHotspot(matchDevice.spriteDbid)
 | 
			
		||||
          if (
 | 
			
		||||
            !lightOffHotColorArr.some(
 | 
			
		||||
              ({ spriteDbid }) => spriteDbid === matchDevice.spriteDbid
 | 
			
		||||
            )
 | 
			
		||||
          ) {
 | 
			
		||||
            lightOffHotColorArr.push(matchDevice);
 | 
			
		||||
          }
 | 
			
		||||
          lightOnHotColorArr = lightOnHotColorArr.filter(
 | 
			
		||||
            (light) => light !== matchDevice.spriteDbid
 | 
			
		||||
            (light) => light.spriteDbid !== matchDevice.spriteDbid
 | 
			
		||||
          );
 | 
			
		||||
          lightOffHotColorArr.push(matchDevice.spriteDbid);
 | 
			
		||||
 | 
			
		||||
          heatMap?.changeTemp(matchDevice.device_number, 0);
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
@ -187,7 +198,6 @@
 | 
			
		||||
          ? parseInt(data.value)
 | 
			
		||||
          : 0;
 | 
			
		||||
      }
 | 
			
		||||
      
 | 
			
		||||
      if (
 | 
			
		||||
        data.point_name == norDevPoiName &&
 | 
			
		||||
        data.value == matchDevice.device_normal_point_value
 | 
			
		||||
@ -211,9 +221,24 @@
 | 
			
		||||
          .attr("data-light-type", "error")
 | 
			
		||||
          .data("light-type", "error");
 | 
			
		||||
      }
 | 
			
		||||
      if (
 | 
			
		||||
        allDevList.length ===
 | 
			
		||||
        lightOnHotColorArr.length + lightOffHotColorArr.length
 | 
			
		||||
      ) {
 | 
			
		||||
        changeColorForHotspot(
 | 
			
		||||
          lightOnHotColorArr.map(({ spriteDbid }) => spriteDbid),
 | 
			
		||||
          null,
 | 
			
		||||
          true
 | 
			
		||||
        );
 | 
			
		||||
        changeColorForHotspot(
 | 
			
		||||
          lightOffHotColorArr.map(({ spriteDbid }) => spriteDbid),
 | 
			
		||||
          null,
 | 
			
		||||
          false
 | 
			
		||||
        );
 | 
			
		||||
 | 
			
		||||
      }
 | 
			
		||||
      $(loadEle).Loading("close");
 | 
			
		||||
 | 
			
		||||
      changeColorForHotspot(lightOnHotColorArr, null, true);
 | 
			
		||||
      changeColorForHotspot(lightOffHotColorArr, null, false);
 | 
			
		||||
      setLightColor();
 | 
			
		||||
      setForgeHotSpotColor(matchDevice);
 | 
			
		||||
      lightDevForgeSpotLig(matchDevice);
 | 
			
		||||
@ -230,7 +255,7 @@
 | 
			
		||||
    });
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  function lightDevForgeSpotLig(devObj) {}
 | 
			
		||||
  function lightDevForgeSpotLig(devObj) { }
 | 
			
		||||
 | 
			
		||||
  // 從設備訂閱更新每個設備卡片即時點位
 | 
			
		||||
  function setDevItemPoiValBySub(data) {
 | 
			
		||||
@ -289,7 +314,7 @@
 | 
			
		||||
    if (
 | 
			
		||||
      subData &&
 | 
			
		||||
      subData[device.device_error_point_name] ==
 | 
			
		||||
        device.device_error_point_value &&
 | 
			
		||||
      device.device_error_point_value &&
 | 
			
		||||
      (!isNaN(parseInt(device.spriteDbid)) || !isNaN(parseInt(device._dbId)))
 | 
			
		||||
    ) {
 | 
			
		||||
      const _dbId = parseInt(device.spriteDbid) || parseInt(device._dbId);
 | 
			
		||||
@ -299,7 +324,7 @@
 | 
			
		||||
    } else if (
 | 
			
		||||
      subData &&
 | 
			
		||||
      subData[device.device_error_point_name] !==
 | 
			
		||||
        device.device_error_point_value &&
 | 
			
		||||
      device.device_error_point_value &&
 | 
			
		||||
      (!isNaN(parseInt(device.spriteDbid)) || !isNaN(parseInt(device._dbId)))
 | 
			
		||||
    ) {
 | 
			
		||||
      const _dbId = parseInt(device.spriteDbid) || parseInt(device._dbId);
 | 
			
		||||
@ -342,44 +367,33 @@
 | 
			
		||||
            $.each(floObj.device_list, (index2, devObj) => {
 | 
			
		||||
              allDevList.push(devObj);
 | 
			
		||||
              let devItem = getRiserPoiObj();
 | 
			
		||||
              strHtml += `<div class="card m-1 border device-wrap" data-number="${
 | 
			
		||||
                devObj.device_number
 | 
			
		||||
              }" data-position="${position}">
 | 
			
		||||
              strHtml += `<div class="card m-1 border device-wrap" data-number="${devObj.device_number
 | 
			
		||||
                }" data-position="${position}">
 | 
			
		||||
                                        <div class="card-body p-2">
 | 
			
		||||
                                            <div class="d-flex mb-2">
 | 
			
		||||
                                                <div  class="mr-5 cur-poi">
 | 
			
		||||
                                                    <span class="d-inline-block mr-3">
 | 
			
		||||
                                                        <img src="${
 | 
			
		||||
                                                          baseImgUrl +
 | 
			
		||||
                                                          varPathDevIcon +
 | 
			
		||||
                                                          devObj.device_image
 | 
			
		||||
                                                        }" class="profile-image rounded-circle" onerror="defDev(this)" alt="...">
 | 
			
		||||
                                                        <img src="${baseImgUrl +
 | 
			
		||||
                varPathDevIcon +
 | 
			
		||||
                devObj.device_image
 | 
			
		||||
                }" class="profile-image rounded-circle" onerror="defDev(this)" alt="...">
 | 
			
		||||
                                                    </span>
 | 
			
		||||
                                                    <a name="devItemName" data-number="${
 | 
			
		||||
                                                      devObj.device_number
 | 
			
		||||
                                                    }" href="javascript:;">${
 | 
			
		||||
                devObj.full_name
 | 
			
		||||
              }</a>
 | 
			
		||||
                                                    <a name="devItemName" data-number="${devObj.device_number
 | 
			
		||||
                }" href="javascript:;">${devObj.full_name
 | 
			
		||||
                }</a>
 | 
			
		||||
                                                </div>
 | 
			
		||||
                                            </div>
 | 
			
		||||
                                        <div class="d-flex mb-0 mt-2 align-items-center">
 | 
			
		||||
                                                <span id="${
 | 
			
		||||
                                                  devObj.device_number
 | 
			
		||||
                                                }_status" class="circle-light"></span>
 | 
			
		||||
                                                <span class="${
 | 
			
		||||
                                                  devItem ? "" : "d-none"
 | 
			
		||||
                                                } ml-2">${
 | 
			
		||||
                devItem?.full_name
 | 
			
		||||
              }:<span name="devItemPoiVal" data-point="${
 | 
			
		||||
                devItem?.points
 | 
			
		||||
              }"></span>${devItem?.unit}</span>
 | 
			
		||||
                                                <a href="javascript:;" name="devItem" data-id="${
 | 
			
		||||
                                                  devObj.device_guid
 | 
			
		||||
                                                }" data-number="${
 | 
			
		||||
                devObj.device_number
 | 
			
		||||
              }" data-name="${
 | 
			
		||||
                devObj.full_name
 | 
			
		||||
              }" class=" ml-2 mb-0 " data-toggle="tooltip" title="默认的 Tooltip">詳細資料</a>
 | 
			
		||||
                                                <span id="${devObj.device_number
 | 
			
		||||
                }_status" class="circle-light"></span>
 | 
			
		||||
                                                <span class="${devItem ? "" : "d-none"
 | 
			
		||||
                } ml-2">${devItem?.full_name
 | 
			
		||||
                }:<span name="devItemPoiVal" data-point="${devItem?.points
 | 
			
		||||
                }"></span>${devItem?.unit}</span>
 | 
			
		||||
                                                <a href="javascript:;" name="devItem" data-id="${devObj.device_guid
 | 
			
		||||
                }" data-number="${devObj.device_number
 | 
			
		||||
                }" data-name="${devObj.full_name
 | 
			
		||||
                }" class=" ml-2 mb-0 " data-toggle="tooltip" title="默认的 Tooltip">詳細資料</a>
 | 
			
		||||
                                            </div>
 | 
			
		||||
                                        </div>
 | 
			
		||||
                                    </div>`;
 | 
			
		||||
@ -469,9 +483,9 @@
 | 
			
		||||
 | 
			
		||||
          callback
 | 
			
		||||
            ? callback(
 | 
			
		||||
                [res.data.left_drawing, res.data.right_drawing],
 | 
			
		||||
                res.data
 | 
			
		||||
              )
 | 
			
		||||
              [res.data.left_drawing, res.data.right_drawing],
 | 
			
		||||
              res.data
 | 
			
		||||
            )
 | 
			
		||||
            : "";
 | 
			
		||||
        }
 | 
			
		||||
      },
 | 
			
		||||
@ -511,12 +525,11 @@
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  function show3DModel(urn) {
 | 
			
		||||
    $(loadEle).Loading("start");
 | 
			
		||||
    launchViewerForHotspot(
 | 
			
		||||
      urn,
 | 
			
		||||
      (viewer, nodeIds) => {
 | 
			
		||||
        // 隱藏 toolbar
 | 
			
		||||
        // document.querySelector("#guiviewer3d-toolbar").style.display = "none";
 | 
			
		||||
        document.querySelector("#guiviewer3d-toolbar").style.display = "none";
 | 
			
		||||
        let devDbIds = allDevList.map((x) => x.forge_dbid);
 | 
			
		||||
        // 大類
 | 
			
		||||
        let subDevDbId = [];
 | 
			
		||||
@ -534,11 +547,11 @@
 | 
			
		||||
          setInviForge(forgeInvTypeDef, [...devDbIds, ...subDevDbId]);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        $(loadEle).Loading("close");
 | 
			
		||||
        let sensorObjs = [];
 | 
			
		||||
        let devices = [];
 | 
			
		||||
        if (pageAct.sysSubTag === "M12") {
 | 
			
		||||
          addHotPoint(viewer);
 | 
			
		||||
          Forge3DSensor.sensorTimes = 0;
 | 
			
		||||
          allDevList.forEach((device) => {
 | 
			
		||||
            Forge3DSensor.sensorTimes++;
 | 
			
		||||
            const sensorObj = new Forge3DSensor({
 | 
			
		||||
@ -550,23 +563,23 @@
 | 
			
		||||
              selector: "[name=forgeViewer]",
 | 
			
		||||
              elevCb: elevatorShow
 | 
			
		||||
                ? () => {
 | 
			
		||||
                    let elevOption = {
 | 
			
		||||
                      selector: "[name=forgeViewer]",
 | 
			
		||||
                      viewer: viewer,
 | 
			
		||||
                      ordPath: {
 | 
			
		||||
                        area_tag: pageAct.AreaTag,
 | 
			
		||||
                        building_tag: pageAct.buiTag,
 | 
			
		||||
                      },
 | 
			
		||||
                      sensorObjs,
 | 
			
		||||
                    };
 | 
			
		||||
                  let elevOption = {
 | 
			
		||||
                    selector: "[name=forgeViewer]",
 | 
			
		||||
                    viewer: viewer,
 | 
			
		||||
                    ordPath: {
 | 
			
		||||
                      area_tag: pageAct.AreaTag,
 | 
			
		||||
                      building_tag: pageAct.buiTag,
 | 
			
		||||
                    },
 | 
			
		||||
                    sensorObjs,
 | 
			
		||||
                  };
 | 
			
		||||
 | 
			
		||||
                    // 電梯移動訂閱程序載入
 | 
			
		||||
                    let forge3DElev = new Forge3DElevFull(elevOption);
 | 
			
		||||
                    forge3DElev.bajaEndCallback = function () {
 | 
			
		||||
                      endPageLoading();
 | 
			
		||||
                    };
 | 
			
		||||
                    forge3DElev.init();
 | 
			
		||||
                  }
 | 
			
		||||
                  // 電梯移動訂閱程序載入
 | 
			
		||||
                  let forge3DElev = new Forge3DElevFull(elevOption);
 | 
			
		||||
                  forge3DElev.bajaEndCallback = function () {
 | 
			
		||||
                    endPageLoading();
 | 
			
		||||
                  };
 | 
			
		||||
                  forge3DElev.init();
 | 
			
		||||
                }
 | 
			
		||||
                : null,
 | 
			
		||||
              curDevice: {
 | 
			
		||||
                ...device,
 | 
			
		||||
@ -670,9 +683,7 @@
 | 
			
		||||
          getE1NodeId(viewer);
 | 
			
		||||
        }
 | 
			
		||||
      },
 | 
			
		||||
      () => {
 | 
			
		||||
        $(loadEle).Loading("close");
 | 
			
		||||
      },
 | 
			
		||||
      () => { },
 | 
			
		||||
      "[name=forgeViewer]"
 | 
			
		||||
    );
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
@ -49,7 +49,7 @@
 | 
			
		||||
    getHotspotPoint(() => {
 | 
			
		||||
      show3DModel(pageAct.urn);
 | 
			
		||||
    });
 | 
			
		||||
    if (!tempSubTag.includes(pageAct.sysSubTag)) {
 | 
			
		||||
    if (tempSubTag.includes(pageAct.sysSubTag)) {
 | 
			
		||||
      $("#topLight").html(setTopLight());
 | 
			
		||||
      setLightColor();
 | 
			
		||||
    }
 | 
			
		||||
@ -573,7 +573,13 @@
 | 
			
		||||
        if (lightOn && matchDevice.spriteDbid) {
 | 
			
		||||
          // setLightValues(matchDevice.device_guid, 200, 0xe1cf18);
 | 
			
		||||
          // changeColorForHotspot(matchDevice.spriteDbid, null, lightOn);
 | 
			
		||||
          lightOnHotColorArr.push(matchDevice);
 | 
			
		||||
          if (
 | 
			
		||||
            !lightOnHotColorArr.some(
 | 
			
		||||
              ({ spriteDbid }) => spriteDbid === matchDevice.spriteDbid
 | 
			
		||||
            )
 | 
			
		||||
          ) {
 | 
			
		||||
            lightOnHotColorArr.push(matchDevice);
 | 
			
		||||
          }
 | 
			
		||||
          lightOffHotColorArr = lightOffHotColorArr.filter(
 | 
			
		||||
            (light) => light.spriteDbid !== matchDevice.spriteDbid
 | 
			
		||||
          );
 | 
			
		||||
@ -582,10 +588,16 @@
 | 
			
		||||
          // console.log(lightOn, matchDevice);
 | 
			
		||||
          // setLightValues(matchDevice.device_guid, 0, 0xffffff);
 | 
			
		||||
          // changeColorForHotspot(matchDevice.spriteDbid, null, lightOn);
 | 
			
		||||
          if (
 | 
			
		||||
            !lightOffHotColorArr.some(
 | 
			
		||||
              ({ spriteDbid }) => spriteDbid === matchDevice.spriteDbid
 | 
			
		||||
            )
 | 
			
		||||
          ) {
 | 
			
		||||
            lightOffHotColorArr.push(matchDevice);
 | 
			
		||||
          }
 | 
			
		||||
          lightOnHotColorArr = lightOnHotColorArr.filter(
 | 
			
		||||
            (light) => light.spriteDbid !== matchDevice.spriteDbid
 | 
			
		||||
          );
 | 
			
		||||
          lightOffHotColorArr.push(matchDevice);
 | 
			
		||||
          heatMap?.changeTemp(matchDevice.device_number, 0);
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
@ -681,7 +693,6 @@
 | 
			
		||||
        deviceScatterErrorArr.length ===
 | 
			
		||||
        option.series[0].data.length
 | 
			
		||||
      ) {
 | 
			
		||||
        console.log("deviceScatterNormalArr", deviceScatterNormalArr)
 | 
			
		||||
        deviceScatterNormalArr.forEach((device) => {
 | 
			
		||||
          const cur = option.series[0].data.find(
 | 
			
		||||
            ({ device_number }) => device_number === device.device_number
 | 
			
		||||
@ -693,7 +704,6 @@
 | 
			
		||||
          cur.itemStyle = { color: normalColor };
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        deviceScatterCloseArr.forEach((device) => {
 | 
			
		||||
          const cur = option.series[0].data.find(
 | 
			
		||||
            ({ device_number }) => device_number === device.device_number
 | 
			
		||||
@ -1150,7 +1160,7 @@
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        obj.itemStyle = {
 | 
			
		||||
          color: item.device_color || item.device_normal_color,
 | 
			
		||||
          color: item.device_color || item.device_close_color,
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        res.push(obj);
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										3999
									
								
								Frontend/index.html
									
									
									
									
									
								
							
							
						
						
									
										3999
									
								
								Frontend/index.html
									
									
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										2049
									
								
								Frontend/js/site.js
									
									
									
									
									
								
							
							
						
						
									
										2049
									
								
								Frontend/js/site.js
									
									
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
		Loading…
	
		Reference in New Issue
	
	Block a user