ZengTao
2023-12-20 aff3977ee493cfa7554792285100c7b6407e1d74
CanadaMes-ui/src/views/Electrical/Positioning1.vue
@@ -236,7 +236,19 @@
        };
        // 收到消息
        socket.onmessage = (msg) => {
        let isMouseInInputBox = false; // 标记鼠标是否在输入框内
const inputBox = document.querySelectorAll('.input-box');
inputBox.forEach(box => {
  box.addEventListener('mouseenter', () => {
    isMouseInInputBox = true;
  });
  box.addEventListener('mouseleave', () => {
    isMouseInInputBox = false;
  });
});
socket.onmessage = (msg) => {
  if (!msg.data) {
    return; // 如果收到空数据,则直接返回,不执行后续逻辑
  }
@@ -244,50 +256,26 @@
  let obj = JSON.parse(msg.data);
  const jsonData2 = this.jsonData;
  const handleMouseMove = (event) => {
    if (!event || !event.target) {
      return; // 如果 event 或 event.target 不存在,则直接返回,不执行后续逻辑
    }
  const parms = obj.params;
    const inputBox = document.querySelectorAll('.input-box');
    const target = event.target;
    const isMouseInInput = Array.from(inputBox).some(box => box.contains(target));
    if (!isMouseInInput) {
            const parms = obj.params;
              // 如果鼠标不在输入框内,更新输入框的值
              // this.submitDataToBackend()
              // console.log(parms)
if(parms){
              let index = 0;
              for (let i = 0; i < jsonData2.length; i++) {
                let arr = jsonData2[i];
                for (let j = 0; j < arr.length; j++) {
                  let obj = arr[j];
                  if (
                    obj.type === "0" &&
                    Object.prototype.hasOwnProperty.call(obj, "value")
                  ) {
                    obj.value = parms[0][index];
                    index++;
                  }
                }
              }
            }
          }
  if(parms && !isMouseInInputBox){ // 只有在鼠标不在输入框内时才更新数据
  //  console.log(parms)
    let index = 0;
    for (let i = 0; i < jsonData2.length; i++) {
      let arr = jsonData2[i];
      for (let j = 0; j < arr.length; j++) {
        let obj = arr[j];
        if (
          obj.type === "0" &&
          Object.prototype.hasOwnProperty.call(obj, "value")
        ) {
          obj.value = parms[0][index];
          index++;
        }
              // console.log(jsonData2);
              setInterval(() => handleMouseMove(event), 1000); // 每隔 1000ms 检测一次鼠标位置
document.addEventListener('mousemove', event => handleMouseMove(event));
      }
    }
  }
};