ZengTao
2023-12-20 aff3977ee493cfa7554792285100c7b6407e1d74
CanadaMes-ui/src/views/Electrical/Parameter2.vue
@@ -21,7 +21,7 @@
        type="text"
        active-class="blue-button"
        >{{ $t("Action") }}</router-link -->
      <!-- <router-link to="/Electrical/Parameter" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter')
        }}</router-link> -->
      <router-link
@@ -102,10 +102,9 @@
        :span="6"
        v-for="(dataGroup, groupIndex) in jsonData"
        :key="groupIndex"
        style="margin-bottom: -20px;"
        style="margin-bottom: -20px"
      >
        <el-card class="json-block" style="width: 300px; margin-bottom: 2px">
        <el-card class="json-block" style="width: 300px; margin-bottom: 2px;height:170px;">
          <div
            class="button-row"
            style="display: flex; justify-content: space-between"
@@ -141,7 +140,8 @@
                    item.button.value === 2 && item.button.name !== 'Clear ID',
                  'yellow-button':
                    item.button.value === 1 && item.button.name !== 'Clear ID',
                  'id': item.button.value === 1 && item.button.name === 'Clear ID',
                  id:
                    item.button.value === 1 && item.button.name === 'Clear ID',
                }"
                >{{ item.button.name }}</el-button
              >
@@ -162,7 +162,7 @@
                    item.button.value === 2 && item.button.name !== '清除ID',
                  'yellow-button':
                    item.button.value === 1 && item.button.name !== '清除ID',
                  'id': item.button.value === 1 && item.button.name === '清除ID',
                  id: item.button.value === 1 && item.button.name === '清除ID',
                }"
                >{{ item.button.name }}</el-button
              >
@@ -183,9 +183,15 @@
              <span class="name" v-else style="width: 150px">{{
                item.name
              }}</span>
  <el-input
                v-if="item.type === '0' && groupIndex==15"
                v-model="item.value"
                @keyup.enter.native="timeout"
                style="width: 300px"
                class="input-box2"
              ></el-input>
              <el-input
                v-if="item.type === '0'"
                v-else-if="item.type === '0' "
                v-model="item.value"
                readonly="readonly"
                style="width: 300px"
@@ -260,13 +266,40 @@
    updateButtonValue(dataGroup, itemIndex) {
      if (dataGroup[itemIndex].button.value === 1) {
    // 如果当前按钮的值是 0,将其设为 1
    this.$set(dataGroup[itemIndex].button, 'value', 0);
  } else {
    // 否则将其设为 0
    this.$set(dataGroup[itemIndex].button, 'value', 1);
  }
},
        // 如果当前按钮的值是 0,将其设为 1
        this.$set(dataGroup[itemIndex].button, "value", 0);
      } else {
        // 否则将其设为 0
        this.$set(dataGroup[itemIndex].button, "value", 1);
      }
    },
    //范围 0-100
    timeout(){
        const data3 = [];
        const resetButtonValues3 = [this.jsonData[15][0].value];
        // 将得到的值添加到 data 数组中
        data3.push(resetButtonValues3.flat());
        data3.unshift([],[]);
        // 在 data3 数组前面添加两个空数组
        // 创建 jsonObject3 对象,并添加 data3 属性
        const jsonObject3 = { data: data3 };
        // 提交数据到后端
        const jsonString3 = JSON.stringify(jsonObject3);
        console.log("Storage wait delay:", jsonString3);
        socket?.send(jsonString3);
        // setTimeout(()=>
        //   window.location.reload(),2000
        // )
    },
    submitDataToBackend(currentButtonName) {
      if (currentButtonName === "清除ID" || currentButtonName === "Clear ID") {
        const data2 = [];
@@ -297,11 +330,13 @@
      }
      if (
        currentButtonName === "Abort/ResumeTasks" ||
        currentButtonName === "急停后中止/继续选择"
        currentButtonName === "A01Abort/ResumeTasks" ||
        currentButtonName === "A01终止/继续" ||
        currentButtonName === "A02Abort/ResumeTasks" ||
        currentButtonName === "A02终止/继续"
      ) {
        const data3 = [];
        const resetButtonValues3 = [this.jsonData[13][0].button.value];
        const resetButtonValues3 = [this.jsonData[13][0].button.value,this.jsonData[14][0].button.value];
        // 将得到的值添加到 data 数组中
        data3.push(resetButtonValues3.flat());
@@ -319,7 +354,11 @@
        //   window.location.reload(),2000
        // )
      }
    },
    initWebSocket() {
      let viewname = "Parameter2";
@@ -345,7 +384,17 @@
        socket.onopen = function () {
          console.log("websocket已打开");
        };
        let isMouseInInputBox = false; // 标记鼠标是否在输入框内
const inputBox = document.querySelectorAll('.input-box2');
inputBox.forEach(box => {
  box.addEventListener('mouseenter', () => {
    isMouseInInputBox = true;
  });
  box.addEventListener('mouseleave', () => {
    isMouseInInputBox = false;
  });
});
        // 收到消息
        socket.onmessage = (msg) => {
          if (!msg.data) {
@@ -358,122 +407,134 @@
          const parms = obj.params;
         // console.log(obj);
          //console.log(obj);
          // const handleMouseMove = throttle(function(event) {
          // const inputBox = document.querySelectorAll('.id');
          // const target = event.target;
           if (parms ) {
          //急停按钮
          jsonData2[13][0].button.value = obj.jiting[0][0];
          if (parms && !isMouseInInputBox) {
            //急停按钮
            jsonData2[13][0].button.value = obj.jiting[0][0];
            jsonData2[14][0].button.value = obj.jiting[0][1];
          //清除id
            //清除id
          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 === "3") {
                obj.button.value = parms[0][i];
                // console.log(obj.button.value);
              }
            }
          }
          //ID
          const specialChars = /[^\w\s]/g; // 正则表达式匹配非字母、数字、下划线和空格的字符
          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") {
                if (parms[1] && parms[1][i]) {
                  obj.value = parms[1][i].replace(specialChars, "");
                  // console.log(obj.value);
                }
                if (obj.name === "ID2") {
                  obj.value = parms[1][7].replace(specialChars, ""); // 将ID2对应的值赋为parms[1][7]
                }
                if (obj.name === "A02ID") {
                  obj.value = parms[1][8].replace(specialChars, "");
                }
                if (obj.name === "B01ID") {
                  obj.value = parms[1][9].replace(specialChars, "");
                }
                if (obj.name === "B02ID") {
                  obj.value = parms[1][10].replace(specialChars, "");
            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 === "3") {
                  obj.button.value = parms[0][i];
                  // console.log(obj.button.value);
                }
              }
            }
          }
          //手动状态
          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 === "4") {
                obj.button.value = parms[2][i];
              }
            }
          }
          //改变状态文字
          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 === "4" && obj.button.value === 1) {
                if (
                  obj.button.name.includes("状态") &&
                  this.language === "zh-CN"
                ) {
                  obj.button.name = obj.button.name.replace("手动", "自动");
                }
                if (obj.button.name.includes("Status")) {
                  obj.button.name = obj.button.name.replace("Manual", "Auto");
            //ID
            const specialChars = /[^\w\s]/g; // 正则表达式匹配非字母、数字、下划线和空格的字符
            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") {
                  if (parms[1] && parms[1][i]) {
                    obj.value = parms[1][i].replace(specialChars, "");
                    // console.log(obj.value);
                  }
                  if (obj.name === "ID2") {
                    obj.value = parms[1][7].replace(specialChars, ""); // 将ID2对应的值赋为parms[1][7]
                  }
                  if (obj.name === "A02ID") {
                    obj.value = parms[1][8].replace(specialChars, "");
                  }
                  if (obj.name === "B01ID") {
                    obj.value = parms[1][9].replace(specialChars, "");
                  }
                  if (obj.name === "B02ID") {
                    obj.value = parms[1][10].replace(specialChars, "");
                  }
                }
              }
            }
          }
          //扫描枪扫码的ID
          jsonData2.forEach((item) => {
            item.forEach((subItem) => {
              if (subItem.read === 66) {
                subItem.value = parms[3][0].replace(specialChars, "");
            //手动状态
            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 === "4") {
                  obj.button.value = parms[2][i];
                }
              }
            }
            //改变状态文字
            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 === "4" && obj.button.value === 1) {
                  if (
                    obj.button.name.includes("状态") &&
                    this.language === "zh-CN"
                  ) {
                    obj.button.name = obj.button.name.replace("手动", "自动");
                  }
                  if (obj.button.name.includes("Status")) {
                    obj.button.name = obj.button.name.replace("Manual", "Auto");
                  }
                }
              }
            }
            //扫描枪扫码的ID
            jsonData2.forEach((item) => {
              item.forEach((subItem) => {
                if (subItem.read === 66) {
                  subItem.value = parms[3][0].replace(specialChars, "");
                }
              });
            });
          });
          jsonData2.forEach((item) => {
            item.forEach((subItem) => {
              if (subItem.read === 666) {
                subItem.value = parms[3][1].replace(specialChars, "");
              }
            jsonData2.forEach((item) => {
              item.forEach((subItem) => {
                if (subItem.read === 666) {
                  subItem.value = parms[3][1].replace(specialChars, "");
                }
              });
            });
          });
          //A01当前格子
          let lastParmsArray = parms[parms.length - 1];
            //A01当前格子
            let lastParmsArray = parms[parms.length - 1];
          let lastParmsIndex = 0;
            let lastParmsIndex = 0;
          for (let i = 0; i < jsonData2.length; i++) {
            for (let j = 0; j < jsonData2[i].length; j++) {
              if (jsonData2[i][j].read === 333) {
                jsonData2[i][j].value = lastParmsArray[lastParmsIndex];
                lastParmsIndex++;
                if (lastParmsIndex === lastParmsArray.length) {
                  lastParmsIndex = 0;
            for (let i = 0; i < jsonData2.length; i++) {
              for (let j = 0; j < jsonData2[i].length; j++) {
                if (jsonData2[i][j].read === 333) {
                  jsonData2[i][j].value = lastParmsArray[lastParmsIndex];
                  lastParmsIndex++;
                  if (lastParmsIndex === lastParmsArray.length) {
                    lastParmsIndex = 0;
                  }
                }
              }
            }
             jsonData2[15][0].value =  obj.timeout[0];
          }
        }
        };
        //  console.log(jsonData2);
@@ -557,5 +618,4 @@
.id {
  background-color: green;
}
</style>