wu
2024-01-18 4f3aa71ed602c1abbafa638591b20abc3c7be224
CanadaMes-ui/src/layout/index.vue
@@ -66,23 +66,24 @@
              <el-menu-item index="1-1" @click="logout">{{ $t('exit') }}</el-menu-item>
              <el-menu-item index="1-2" @click="showChangePasswordDialog">{{ $t('changePassword') }}</el-menu-item>
            </el-submenu>
          </template>
          <template>
            <el-dialog title="修改密码" :visible.sync="dialogVisible" width="30%">
              <el-form ref="form" :model="formData" label-width="100px">
                <el-form-item label="旧密码">
            <el-dialog :title="$t('changePassword')" :visible.sync="dialogVisible" width="30%">
              <el-form ref="form" :model="formData" label-width="200px">
                <el-form-item :label="$t('Old password')">
                  <el-input v-model="formData.oldPassword" type="password" show-password></el-input>
                </el-form-item>
                <el-form-item label="新密码">
                <el-form-item :label="$t('New password')">
                  <el-input v-model="formData.newPassword" type="password" show-password></el-input>
                </el-form-item>
                <el-form-item label="确认新密码">
                <el-form-item :label="$t('Confirm password')">
                  <el-input v-model="formData.confirmPassword" type="password" show-password></el-input>
                </el-form-item>
              </el-form>
              <div slot="footer" class="dialog-footer">
                <el-button @click="dialogVisible = false">取消</el-button>
                <el-button type="primary" @click="savePassword">保存</el-button>
                <el-button @click="dialogVisible = false">{{ $t('cancel') }}</el-button>
                <el-button type="primary" @click="savePassword">{{ $t('confirm') }}</el-button>
              </div>
            </el-dialog>
          </template>
@@ -102,11 +103,20 @@
      </el-table>
    </el-dialog>
    <el-dialog :visible.sync="dialogFormCountDown" :title="$t('Approximately resettable time')" top="5vh">
            <div :style="'font-size: ' + PromptSize + 'px;text-align: center;'">
                <!-- {{ this.CountDowns }} -->
                {{ this.CountDowns }}
            </div>
        </el-dialog>
      <div :style="'font-size: ' + PromptSize + 'px;text-align: center;'">
        <!-- {{ this.CountDowns }} -->
        {{ this.CountDowns }}
      </div>
    </el-dialog>
    <!-- <el-dialog :visible.sync="dialogFormVisible3">
      <el-button :class="{ 'blue-button': receivedData === 1 }" @click="toggleButtonValue(1)">{{
        $t('A01Abort/ResumeTasks') }}</el-button>
      <el-button :class="{ 'blue-button': receivedData2 === 1 }" @click="toggleButtonValue(2)">{{
        $t('A02Abort/ResumeTasks') }}</el-button>
    </el-dialog> -->
  </el-container>
</template>
@@ -115,6 +125,7 @@
import { changePassword } from '../api/user'
import { removeToken } from "../utils/auth";
import LanguageMixin from '../lang/LanguageMixin'
import { MessageBox } from 'element-ui';
// import { mapState, mapMutations } from 'vuex';
// import Tag from '../layout/tag.vue';
// import store from '../store';
@@ -128,6 +139,8 @@
    return {
      activeTag: '', // 当前激活的标签
      dialogVisible: false,
      receivedData: 0,
      receivedData2: 0,
      formData: {
        oldPassword: '',
        newPassword: '',
@@ -142,19 +155,23 @@
        pageNum: -1
      },
      dialogFormVisible2: false,
      dialogFormCountDown:false,
      dialogFormVisible3: false,
      alarm: [],
      alarm2: [],
      CountDowns: "0",
      EmergencyStop: false,
      PromptSize:500,
      reset:false
      PromptSize: 250,
      dialogFormCountDown: false
    }
  },
  // components: {
  //   Tag
  // },
  created() {
    selectList(this.menuListForm).then(res => {
      this.menuList = res.data
@@ -171,6 +188,48 @@
    // ...mapState('tags', ['tags'])
  },
  methods: {
    toggleButtonValue(buttonNumber) {
      MessageBox.confirm(this.$t('Are you sure to perform this operation?'), this.$t('prompt'), {
        confirmButtonText: this.$t('confirm'),
        cancelButtonText: this.$t('cancel'),
        type: 'warning'
      }).then(() => {
        // 点击确认按钮后执行的操作
        if (buttonNumber === 1) {
          this.receivedData = this.receivedData === 0 ? 1 : 0;
        } else if (buttonNumber === 2) {
          this.receivedData2 = this.receivedData2 === 0 ? 1 : 0;
        }
        console.log(this.receivedData, this.receivedData2)
        const data3 = [];
        const resetButtonValues3 = [this.receivedData, this.receivedData2];
        // 将得到的值添加到 data 数组中
        data3.push(resetButtonValues3.flat());
        // 在 data3 数组前面添加两个空数组
        // 创建 jsonObject3 对象,并添加 data3 属性
        const jsonObject3 = { data: data3 };
        // 提交数据到后端
        const jsonString3 = JSON.stringify(jsonObject3);
        console.log("急停后中止/继续选择:", jsonString3);
        socket?.send(jsonString3);
        setTimeout(() => {
          this.dialogFormVisible3 = false;
        }, 1000); // 延迟时间为1秒(1000毫秒)
      }).catch(() => {
        // 点击取消按钮后执行的操作
      });
    },
    init() {
      let viewname = "Home";
      if (typeof (WebSocket) == "undefined") {
@@ -192,35 +251,54 @@
        socket.onmessage = function (msg) {
          //console.log("收到数据====" + msg.data);
          let obj = JSON.parse(msg.data);
          if (obj.alarmmg) {
          if (obj.alarmmg[0].length > 0) {
            if (this.alarm.length > 0) {
              if (this.alarm[this.alarm.length - 1].id != obj.alarmmg[0][obj.alarmmg[0].length - 1].id) {
            if (obj.alarmmg[0].length > 0) {
              if (this.alarm.length > 0) {
                if (this.alarm[this.alarm.length - 1].id != obj.alarmmg[0][obj.alarmmg[0].length - 1].id) {
                  this.alarm = obj.alarmmg[0];
                  this.dialogFormVisible2 = true;
                }
              } else {
                this.alarm = obj.alarmmg[0];
                this.dialogFormVisible2 = true;
              }
            } else {
              this.alarm = obj.alarmmg[0];
              this.dialogFormVisible2 = true;
              this.dialogFormVisible2 = false;
            }
          }
          //是否急停
          if (obj.emergencystop != null) {
            this.EmergencyStop = obj.emergencystop[0];
          }
            //是否急停
            if (obj.emergencystop != null) {
              this.EmergencyStop = obj.emergencystop[0];
            }
          //复位倒计时
          if (obj.countdown != null) {
            if ((obj.countdown[0] == true && this.CountDowns == 0) || this.EmergencyStop == true) {
              this.CountDown();
            //复位倒计时
            if (obj.countdown != null) {
              if ((obj.countdown[0] == true && this.CountDowns == 0) || this.EmergencyStop == true) {
                this.CountDown();
              }
            }
            //复位完成信号
            if (obj.reset != null) {
              this.reset = obj.reset[0];
            }
          }
          //复位完成信号
          if (obj.reset != null) {
            this.reset = obj.reset[0];
          }
          if (obj.Abort) {
            if (obj.Abort[0].length > 0) {
              this.receivedData = obj.Abort[0][0];
              this.receivedData2 = obj.Abort[0][1];
              // this.dialogFormVisible3 = true;
            }
          }
          this.$forceUpdate();
        }.bind(this);
@@ -248,7 +326,6 @@
              this.PromptSize = 500;
              this.CountDowns = count;
              count--;
              this.dialogFormCountDown = true;
            }
            else {
              this.PromptSize = 200;
@@ -259,9 +336,13 @@
              }
            }
          }
        },
        1000
      );
      if (this.reset == false&&this.EmergencyStop != true) {
        this.dialogFormCountDown = true;
      }
    },
    logout: function () {
      removeToken()
@@ -283,7 +364,6 @@
      //   this.$store.commit('tags/addTag', tag);
      // }
    },
    removeTag() {
      // this.$store.commit('tags/removeTag', index); // 从 Vuex Store 中移除标签
@@ -417,6 +497,11 @@
  }
}
.blue-button {
  background-color: green;
  color: white;
}
.el-header {
  background-color: #576574;