春风项目四线(合箱线、总装线)
wujian
2024-04-25 c6aaadcc026c1380922f53b31b213a20eb8bbee0
jcdm-ui/src/views/main/kb/engineCheck/index.vue
@@ -1,93 +1,117 @@
<template>
  <div class="app-container">
    <el-card  style="height: 70px;margin-bottom: 10px" class="box-card" >
    <el-card   class="box-card"  style="height: 60px" >
      <template>
        <div class="container">
          <el-row type="flex" justify="center"  style="text-align: center" >
            <el-col :span="12">
              <span style="fontSize:35px;color:black"><strong>发动机数据检查</strong></span>
            </el-col>
          </el-row>
        <div class="container" type="flex" justify="center" style="text-align:center">
<!--          <el-row   type="flex" justify="center" style="text-align:center;height: 12px" >-->
<!--            <el-col  type="flex" justify="center"  :span="14" style="text-align:center">-->
          <el-divider><span style="font-size:22px;color:black"><strong>发动机数据检查</strong></span></el-divider>
<!--            </el-col>-->
<!--          </el-row>-->
        </div>
      </template>
    </el-card>
   <el-row :gutter="5"  style="margin-top: 10px">
     <el-col :span="10" >
       <el-card class="bottom-card">
         <el-descriptions :column="1" >
           <el-descriptions-item>
             <el-form ref="form" :model="form"  label-width="200px" style="height: 60px;margin-top: 20px" >
               <el-form-item prop="engineNo" >
              <span slot="label" style="font-size:45px;color:black"><strong>发动机号</strong></span>
                 <el-input style="font-size:30px" v-model="form.engineNo" placeholder="请输入发动机号" clearable  @keyup.enter.native="EngineNohandleChange" >
   <el-row :gutter="0"  >
     <el-col :span="14">
       <el-card   class="box-card" style="margin-top: 5px" >
             <el-form ref="form" :model="form"  label-width="25%"   >
               <el-form-item prop="engineNo" style="margin-top: 16px">
              <span slot="label" style="font-size:22px;color:black;"><strong>发动机号</strong></span>
                 <el-input style="font-size:20px" v-model="form.engineNo" placeholder="请输入发动机号" clearable  @keyup.space.native="EngineNohandleChange" >
                   <el-button slot="append" plain type="info" @click="EngineNohandleChange(form.engineNo)" icon="el-icon-search"></el-button>
                 </el-input>
               </el-form-item>
             </el-form>
           </el-descriptions-item>
           <el-descriptions-item>
             <el-form ref="form" :model="form"  label-width="200px" style="height: 60px;margin-top: 20px" >
               <el-form-item   prop="productType" >
                 <span slot="label" style="font-size:45px;color:black"><strong>机型</strong></span>
                 <el-input disabled style="font-size:30px"  value="form.productType" v-model="form.productType" placeholder="" />
             <el-form ref="form" :model="form"  label-width="25%"  >
               <el-form-item   prop="productType"style="margin-top: 30px" >
                 <span slot="label" style="font-size:22px;color:black"><strong>机型</strong></span>
                 <el-input disabled style="font-size:20px"  value="form.productType" v-model="form.productType" placeholder="" />
               </el-form-item>
             </el-form>
           </el-descriptions-item>
           <el-descriptions-item>
             <el-form ref="form" :model="form"  label-width="200px" style="height: 60px;margin-top: 20px" >
               <el-form-item   prop="orderNo" >
              <span  slot="label" style="font-size:45px;color:black"><strong>工单编号</strong></span>
                 <el-input disabled style="font-size:30px" v-model="form.orderNo" placeholder="" />
             <el-form ref="form" :model="form"  label-width="25%"  >
               <el-form-item   prop="orderNo" style="margin-top: 30px">
              <span  slot="label" style="font-size:22px;color:black"><strong>工单编号</strong></span>
                 <el-input disabled style="font-size:20px" v-model="form.orderNo" placeholder="" />
               </el-form-item>
             </el-form>
           </el-descriptions-item>
           <el-descriptions-item>
             <el-form ref="form" :model="form"  label-width="200px" style="height: 60px;margin-top: 20px" >
               <el-form-item   prop="currentWorkstation" >
              <span slot="label" style="font-size:45px;color:black"><strong>质量状态</strong></span>
                 <el-input disabled style="font-size:30px" v-model:value="form.add" placeholder="" />
             <el-form ref="form" :model="form"  label-width="25%"  >
               <el-form-item   prop="currentWorkstation" style="margin-top: 30px">
              <span slot="label" style="font-size:22px;color:black"><strong>质量状态</strong></span>
                 <el-input disabled style="font-size:20px" v-model:value="form.add" placeholder="" />
               </el-form-item>
             </el-form>
           </el-descriptions-item>
         </el-descriptions>
         <el-divider></el-divider>
         <el-row :gutter="10" class="mb8" type="flex" justify="center"  style="text-align: center">
           <el-col :span="1.5">
             <el-button plain  :disabled="buttondisabled" type="primary" style="width:400px;height:160px" v-hasPermi="['bs:formula:add']" @click="forceOnline">
               <span   class="el-icon-thumb"   style="font-size:45px;color:black"></span>
               <span style="font-size:45px;color:black"><strong>强制上线</strong></span>
             <el-button plain  type="primary" style="width:400px;height:160px" v-hasPermi="['bs:formula:add']" @click="forceUpload">
               <span   class="el-icon-thumb"   style="font-size:40px;color:black"></span>
               <span style="font-size:45px;color:black" ><strong>强制上线</strong></span>
             </el-button>
           </el-col>
         </el-row>
       </el-card>
     </el-col>
     <el-col :span="14"  inline style="height:600px;width:850px  ">
       <el-tabs type="border-card"  >
         <el-card>
         <el-col :span="14"style="height: 270px;width:800px  ">
     <el-col :span="10"  inline style="margin-top: 5px">
         <el-card class="custom-content"  style="height: 264px">
         <el-col :span="14">
           <span style="font-size:25px"><strong>质量状态</strong></span>
           <el-divider></el-divider>
           {{this.form.engineCheckList}}
         </el-col>
         </el-card>
         <el-card style="margin-top: 10px" >
         <el-col :span="14"style="height: 270px;width:800px  ">
         <el-card class="custom-content" style="height: 264px" >
         <el-col :span="14"style="  ">
           <span style="font-size:25px"><strong>最终结果</strong></span>
           <el-divider></el-divider>
           {{queryParams.productType}}
         </el-col>
         </el-card>
       </el-tabs>
     </el-col>
   </el-row>
  </div>
</template>
<script>
import { listOrderScheduling, getOrderScheduling, delOrderScheduling, addOrderScheduling, updateOrderScheduling } from "@/api/main/bs/orderScheduling/orderScheduling";
import { listOrderScheduling, forceUploadMethod, getOrderScheduling, delOrderScheduling, addOrderScheduling, updateOrderScheduling } from "@/api/main/bs/orderScheduling/orderScheduling";
import { listPassingStationCollection, getPassingStationCollection, delPassingStationCollection, addPassingStationCollection, updatePassingStationCollection } from "@/api/main/da/passingStationCollection/passingStationCollection";
import {listLineInfo} from "@/api/main/bs/lineInfo/lineInfo";
import WebSocketReconnect from "@/utils/WebsocketTool";
// let websocket = null
// //判断当前浏览器是否支持WebSocket
// if ('WebSocket' in window) {
//   //连接WebSocket节点
//   websocket = new WebSocketReconnect('ws://127.0.0.1:8086/websocket/111122')
// } else {
//   alert('浏览器不支持webSocket')
// }
// //接收到消息的回调方法
// websocket.socket.onmessage = function (event) {
//   let data = event.data
//   console.log('后端传递的数据:' + data)
//   if (data != null && data !== ''){
//     this.result = JSON.parse(data)
//     console.log('this.result',this.result)
//     // this.form.engineNo = this.result.server_message
//     this.transEngineNo = this.result.server_message
//     console.log('this.transEngineNo11111111111',this.transEngineNo)
//   }
//
// }
// //监听窗口关闭事件,当窗口关闭时,主动去关闭websocket连接,防止连接还没断开就关闭窗口,server端会抛异常。
// window.onbeforeunload = function () {
//   websocket.close()
// }
// //关闭连接
// function closeWebSocket() {
//   websocket.close()
// }
// //发送消息
// function send() {
//   websocket.socket.send({ kk: 123 })
// }
export default {
  components: { },
@@ -95,11 +119,15 @@
  props: [],
  data() {
    return {
      websocket: null,
      result: {},
      transEngineNo: '',
      options: [],
      total: 0,
      engineCheckList:[],
      showFlag:false,
      buttondisabled:true,
      mess:'',
      // 查询参数
      queryParams: {
        pageNum: 1,
@@ -126,10 +154,74 @@
    };
  },
  computed: {},
  watch: {},
  watch: {
    // transEngineNo:{
    //   handler(newVal,oldVal) {
    //     console.log('newVal',newVal)
    //     console.log('oldVal',oldVal)
    //     this.form.engineNo = newVal
    //     console.log('11111111111111')
    //     console.log('this.form.engineNo',this.form.engineNo)
    //   },
    //   immediate:true
    // }
  },
  created() {},
  mounted() {},
  mounted() {
    this.initWebSocket()
  },
  methods: {
    forceUpload() {
      console.log('0000', this.form.engineNo)
      if (this.form.engineNo !== null) {
        forceUploadMethod(this.form.engineNo).then(res => {
        })
      } else {
        this.$message({
          message: '请输入发动机条码',
          type: 'error',
          offset: 300
        })
      }
    },
    initWebSocket: function (){
      //判断当前浏览器是否支持WebSocket
      if ('WebSocket' in window) {
        //连接WebSocket节点
        this.websocket = new WebSocketReconnect('ws://127.0.0.1:8086/websocket/111122')
        //接收到消息的回调方法
        this.websocket.socket.onmessage = (event) => {
          let data = event.data
          console.log('后端传递的数据:' + data)
          if (data != null && data !== ''){
            this.result = JSON.parse(data)
            console.log('this.result',this.result)
            this.form.engineNo = this.result.server_message
            // this.transEngineNo = this.result.server_message
            console.log('this.transEngineNo11111111111',this.form.engineNo)
            if (this.form.engineNo !== null && this.form.engineNo !== ''){
              this.EngineNohandleChange()
            }
          }
        }
//监听窗口关闭事件,当窗口关闭时,主动去关闭websocket连接,防止连接还没断开就关闭窗口,server端会抛异常。
        window.onbeforeunload = function () {
          this.websocket.close()
        }
//关闭连接
        function closeWebSocket() {
          this.websocket.close()
        }
//发送消息
        function send() {
          this.websocket.socket.send({ kk: 123 })
        }
      } else {
        alert('浏览器不支持webSocket')
      }
    },
    reset() {
      this.form = {
        engineNo:null,
@@ -143,10 +235,12 @@
      this.resetForm("form");
    },
    EngineNohandleChange(){
      console.log("EngineNohandleChange")
      if(this.form.engineNo !== null && this.form.engineNo !== undefined){
        let OrderSchedulingParam = {engineNo: null}
        OrderSchedulingParam.engineNo = this.form.engineNo;
        listOrderScheduling(OrderSchedulingParam).then(response => {
          console.log(response)
          if(response.total === 1 ){
            this.form.productType = response.rows[0].model
            this.form.orderNo = response.rows[0].orderNo
@@ -163,8 +257,17 @@
          else{
            this.reset();
            this.buttondisabled = true
            this.$modal.msgError('输入的发动机号有误');
              }
            const h = this.$createElement;
            this.$message({
              message: h('p',null, [
                       h('span', null, '警告 '),
                       h('i', { style: 'color: black' }, '输入的发动机号有误'),
                       h()]),
              type: 'error',
              center: true,
              offset:300
            });
          }
        });
        let PassingStationCollectionParam = {sfcCode: null}
        PassingStationCollectionParam.sfcCode = this.form.engineNo;
@@ -191,10 +294,18 @@
</script>
<style scoped>
::v-deep .el-input__inner{
  height: 50px;
  height: 40px;
}
::v-deep .el-form-item__label {
  line-height: 50px;
  line-height: 40px;
}
.custom-content {
  height: 50%; /* 设置高度为50% */
}
/*.my-custom-modal .el-dialog__wrapper {*/
/*  width: 400px; !* 设置宽度 *!*/
/*  height: 200px; !* 设置高度 *!*/
/*  top: 50px; !* 设置距离页面顶部的位置 *!*/
/*  left: 50px; !* 设置距离页面左侧的位置 *!*/
/*}*/
</style>