wuyouming666
2024-05-10 10d08bead7b128db3cf0ed8e0977e65a1b188b6e
CanadaMes-ui/src/views/Electrical/AutomaticParameterSetting.vue
@@ -1,52 +1,103 @@
<template>
  <div class="app">
    <el-breadcrumb separator-class="el-icon-arrow-right" class="el-breadcrumb">
      <router-link to="/Electrical/alarm" tag="el-button" type="text" active-class="blue-button">{{ $t('Alarm')
      }}</router-link>
      <router-link to="/Electrical/State" tag="el-button" type="text" active-class="blue-button">{{ $t('State')
      }}</router-link>
      <router-link
        to="/Electrical/alarm"
        tag="el-button"
        type="text"
        active-class="blue-button"
        >{{ $t("Alarm") }}</router-link
      >
      <!-- <router-link
        to="/Electrical/State"
        tag="el-button"
        type="text"
        active-class="blue-button"
        >{{ $t("State") }}</router-link
      > -->
      <!-- <router-link to="/Electrical/Action" tag="el-button" type="text" active-class="blue-button">{{ $t('Action')
      }}</router-link> -->
        }}</router-link> -->
      <!-- <router-link to="/Electrical/Parameter" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter')
      }}</router-link> -->
      <router-link to="/Electrical/Sign" tag="el-button" type="text" active-class="blue-button">{{ $t('Sign')
      }}</router-link>
      <router-link to="/Electrical/Servomanual" tag="el-button" type="text" active-class="blue-button">{{
        $t('Parameter')
      }}</router-link>
        }}</router-link> -->
      <router-link
        to="/Electrical/Sign"
        tag="el-button"
        type="text"
        active-class="blue-button"
        >{{ $t("I/O") }}</router-link
      >
      <router-link
        to="/Electrical/Servomanual"
        tag="el-button"
        type="text"
        active-class="blue-button"
        >{{ $t("Manual/Automatic") }}</router-link
      >
    </el-breadcrumb>
    <el-breadcrumb separator-class="el-icon-arrow-right" class="el-breadcrumb">
      <router-link to="/Electrical/Parameter2" tag="el-button" type="text" active-class="blue-button">{{ $t('Automatic State')
      }}</router-link>
      <router-link to="/Electrical/ManualJog" tag="el-button" type="text" active-class="blue-button">{{
        $t('ManualJog')
      }}</router-link>
       <router-link to="/Electrical/ManualonePosition" tag="el-button" type="text" active-class="blue-button">{{
        $t('ManualonePosition')
      }}</router-link>
      <router-link
        to="/Electrical/Parameter2"
        tag="el-button"
        type="text"
        active-class="blue-button"
        >{{ $t("Glass Data") }}</router-link
      >
      <!-- <router-link
        to="/Electrical/ManualJog"
        tag="el-button"
        type="text"
        active-class="blue-button"
        >{{ $t("ManualJog") }}</router-link
      > -->
<router-link to="/Electrical/Servomanualone" tag="el-button" type="text" active-class="blue-button">{{
        $t('Servomanualone')
      }}</router-link>
      <router-link
        to="/Electrical/ManualonePosition"
        tag="el-button"
        type="text"
        active-class="blue-button"
        >{{ $t("Manual Control") }}</router-link
      >
      <router-link
        to="/Electrical/Servomanualone"
        tag="el-button"
        type="text"
        active-class="blue-button" v-show="false"
        >{{ $t("Servomanualone") }}</router-link
      >
      <!-- <router-link to="/Electrical/Parameter1" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter1')
      }}</router-link> -->
      <router-link to="/Electrical/Positioning1" tag="el-button" type="text" active-class="blue-button">{{
        $t('Address parameter settings')
      }}</router-link>
      <router-link
        to="/Electrical/Positioning1"
        tag="el-button"
        type="text"
        active-class="blue-button"
        >{{ $t("Cage Positions") }}</router-link
      >
      <!-- <router-link to="/Electrical/Positioning2" tag="el-button" type="text" active-class="blue-button">{{
        $t('Positioning2')
      }}</router-link> -->
      <!-- <router-link to="/Electrical/ManualonePosition2" tag="el-button" type="text" active-class="blue-button">{{
        $t('ManualonePosition2')
      }}</router-link> -->
      <router-link to="/Electrical/AutomaticParameterSetting" tag="el-button" type="text" active-class="blue-button">{{
        $t('Speed parameter settings')
      }}</router-link>
      <router-link
        to="/Electrical/AutomaticParameterSetting"
        tag="el-button"
        type="text"
        active-class="blue-button"
        >{{ $t("Speed parameter settings") }}</router-link
      >
      <router-link
        to="/Electrical/InteractionState"
        tag="el-button"
        type="text"
        active-class="blue-button"
        >{{ $t("PLC-MES Info") }}</router-link
      >
    </el-breadcrumb>
    <el-row :gutter="18" class="card">
@@ -64,7 +115,7 @@
            v-model="item.value"
            class="input-box"
            :oninput="`value=value.replace(/^0|[^0-9]/g,'');if(value<`+item.min+`){value=`+item.value+`}else if(value>`+item.max+`){value=`+item.value+`}`"
            @keyup.enter.native="submitDataToBackend">
            @keyup.enter.native="submitDataToBackend($event)">
  </el-input>
  <!-- <el-input v-if="item.type === '0'"
@@ -85,12 +136,30 @@
      </el-col>
    </el-row>
    <!-- <el-button @click="submitDataToBackend">提交数据到后端</el-button> -->
    <div>
   <el-dialog
     :visible="isPromptVisible"
     title="Prompt"
     width="30%"
     :close-on-click-modal="false"
     @close="handleCloseDialog"
   >
     <el-input v-model="password2" type="password" :placeholder="$t('Please enter the password')"></el-input>
     <span slot="footer" class="dialog-footer">
       <el-button @click="handleCancel">{{ $t('Home') }}</el-button>
       <el-button type="primary" @click="handleConfirm">{{ $t('Confirm') }}</el-button>
     </span>
   </el-dialog>
 </div>
  </div>
</template>
<script>
import LanguageMixin from '../../lang/LanguageMixin'
import data from '../../configuration/AutomaticParameterSetting'
import {SelectPassword} from "../../api/home";
let socket;
@@ -99,11 +168,16 @@
  mixins: [LanguageMixin],
  data () {
    return {
      jsonData: data // 加载整个data.json文件作为jsonData
      jsonData: data ,
      password: 1,// 加载整个data.json文件作为jsonData
      password2:"" ,
      jianju: "",
      isPromptVisible: false,
    }
  },
  activated () {
    document.body.style.zoom = "90%";
    this.initWebSocket();
    const language = this.$i18n.locale;
    console.log(language);
@@ -112,9 +186,55 @@
    }
    this.$forceUpdate();
    this.load();
    this.showPasswordPrompt();
  },
  methods: {
    showPasswordPrompt() {
      this.isPromptVisible = true;
    },
    handleCancel() {
      this.$router.push('/home');
      this.isPromptVisible = false;
    },
    handleConfirm() {
      // 验证密码并执行相应操作
      if (this.password === this.password2) {
        // 密码正确,执行操作
        console.log('Password correct, perform operation');
        this.$message.success(this.$t('success password'));
        this.isPromptVisible = false;
        this.password2="";
        // 在这里执行你的操作
      } else {
        this.$message.error(this.$t('Incorrect password'));
        this.showPasswordPrompt();
      }
    },
    handleCloseDialog() {
      // 在这里处理弹框关闭事件,如果需要的话
      console.log('Dialog closed');
    },
    load(){
SelectPassword().then(res => {
          this.password = res.data.password;
          console.log(this.password)
      });
// console.log(this.jsonData)
},
    closeSocket () {
      // 关闭 WebSocket 连接
      socket.close();
@@ -153,9 +273,17 @@
      // 提交数据到后端
      const jsonString = JSON.stringify(jsonObject);
      console.log('提交以下数据到后端:', jsonString);
      console.log("提交以下数据到后端:", jsonString);
      socket?.send(jsonString);
 // console.log("提交以下数据到后端:", jsonString);
      // socket?.send(jsonString);
      event.target.blur(); // 取消输入框焦点
    },
    initWebSocket () {
@@ -181,109 +309,117 @@
        };
        // 收到消息
        let isMouseInInputBox = false; // 标记鼠标是否在输入框内
//         let isMouseInInputBox = false; // 标记鼠标是否在输入框内
const inputBox = document.querySelectorAll('.input-box');
inputBox.forEach(box => {
  box.addEventListener('mouseenter', () => {
    isMouseInInputBox = true;
  });
  box.addEventListener('mouseleave', () => {
    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; // 如果收到空数据,则直接返回,不执行后续逻辑
  }
  // 添加判断条件:如果光标在输入框内,则不执行后续逻辑
  if (document.activeElement.tagName.toLowerCase() === 'input') {
    return;
  }
  let obj = JSON.parse(msg.data);
  const jsonData2 = this.jsonData;
  const parms = obj.params;
      const fanzhuan = obj.fanzhuan;
      const xiaoche = obj.xiaoche;
      const dache = obj.dache1;
  const fanzhuan = obj.fanzhuan;
  const xiaoche = obj.xiaoche;
  const dache = obj.dache1;
      const parms2 = obj.params2;
      const fanzhuan2 = obj.fanzhuan2;
      const xiaoche2 = obj.xiaoche2;
  const parms2 = obj.params2;
  const fanzhuan2 = obj.fanzhuan2;
  const xiaoche2 = obj.xiaoche2;
  if(parms && !isMouseInInputBox){
  if(parms){
    let index = 0;
    for (let i = 0; i < jsonData2.length - 1; i++) {
      let arr = jsonData2[i];
      let index = 0;
      for (let i = 0; i < jsonData2.length - 1; 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')) {
            if (Array.isArray(parms) && Array.isArray(parms[0]) && parms[0][index] !== undefined) {
              obj.value = parms[0][index];
              index++;
            }
      for (let j = 0; j < arr.length; j++) {
        let obj = arr[j];
        if (obj.type === '0' && Object.prototype.hasOwnProperty.call(obj, 'value')) {
          if (Array.isArray(parms) && Array.isArray(parms[0]) && parms[0][index] !== undefined) {
            obj.value = parms[0][index];
            index++;
          }
        }
      }
      if (Array.isArray(fanzhuan) && Array.isArray(fanzhuan[0]) && fanzhuan[0][0] !== undefined) {
        jsonData2[4][0]['value'] = fanzhuan[0][0];
      }
      if (Array.isArray(xiaoche) && Array.isArray(xiaoche[0]) && xiaoche[0][0] !== undefined) {
        jsonData2[3][0]['value'] = xiaoche[0][0];
      }
      if (Array.isArray(dache) && Array.isArray(dache[0]) && dache[0][0] !== undefined) {
        jsonData2[2][0]['value'] = dache[0][0];
      }
      let index2 = 0;
      for (let i = 5; i < jsonData2.length; i++) {
        let arr2 = jsonData2[i];
        for (let j = 0; j < arr2.length; j++) {
          let obj2 = arr2[j];
          if (obj2.type === '0' && Object.prototype.hasOwnProperty.call(obj2, 'value')) {
            if (Array.isArray(parms2) && Array.isArray(parms2[0]) && parms2[0][index2] !== undefined) {
              obj2.value = parms2[0][index2];
              index2++;
            }
          }
        }
      }
              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')) {
                    if (Array.isArray(parms) && Array.isArray(parms[0]) && parms[0][index] !== undefined) {
                      obj.value = parms[0][index];
                      index++;
                    }
                  }
                }
              }
      if (Array.isArray(fanzhuan2) && Array.isArray(fanzhuan2[0]) && fanzhuan2[0][0] !== undefined) {
        jsonData2[8][0]['value'] = fanzhuan2[0][0];
      }
      if (Array.isArray(xiaoche2) && Array.isArray(xiaoche2[0]) && xiaoche2[0][0] !== undefined) {
        jsonData2[9][0]['value'] = xiaoche2[0][0];
      }
    }
    if (Array.isArray(fanzhuan) && Array.isArray(fanzhuan[0]) && fanzhuan[0][0] !== undefined) {
      jsonData2[4][0]['value'] = fanzhuan[0][0];
    }
    if (Array.isArray(xiaoche) && Array.isArray(xiaoche[0]) && xiaoche[0][0] !== undefined) {
      jsonData2[3][0]['value'] = xiaoche[0][0];
    }
    if (Array.isArray(dache) && Array.isArray(dache[0]) && dache[0][0] !== undefined) {
      jsonData2[2][0]['value'] = dache[0][0];
    }
    let index2 = 0;
    for (let i = 5; i < jsonData2.length; i++) {
      let arr2 = jsonData2[i];
      for (let j = 0; j < arr2.length; j++) {
        let obj2 = arr2[j];
        if (obj2.type === '0' && Object.prototype.hasOwnProperty.call(obj2, 'value')) {
          if (Array.isArray(parms2) && Array.isArray(parms2[0]) && parms2[0][index2] !== undefined) {
            obj2.value = parms2[0][index2];
            index2++;
          }
        }
      }
    }
    // // 添加判断条件:如果光标在输入框内,则不执行后续逻辑
    // if (document.activeElement.tagName.toLowerCase() === 'input') {
    //   return;
    // }
    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')) {
          if (Array.isArray(parms) && Array.isArray(parms[0]) && parms[0][index] !== undefined) {
            obj.value = parms[0][index];
            index++;
          }
        }
      }
    }
    if (Array.isArray(fanzhuan2) && Array.isArray(fanzhuan2[0]) && fanzhuan2[0][0] !== undefined) {
      jsonData2[8][0]['value'] = fanzhuan2[0][0];
    }
    if (Array.isArray(xiaoche2) && Array.isArray(xiaoche2[0]) && xiaoche2[0][0] !== undefined) {
      jsonData2[9][0]['value'] = xiaoche2[0][0];
    }
  }
};
        // 关闭事件
        socket.onclose = function () {
          console.log("websocket已关闭");