懒羊羊
2024-01-26 49138a936668c30fbb4063e5d0bb518a400e6c39
jcdm-ui/src/views/main/kb/stationTerminal/index.vue
@@ -14,7 +14,7 @@
     <el-col :span="12">
       <el-card shadow="never">
         <span class="head-font">总成编码 : {{headContent.sfcCode}}</span>
         <el-input v-model="input" style="float: right;width: 150px;" placeholder="请输入内容"></el-input>
         <el-input v-model="content" style="float: right;width: 150px;" placeholder="请输入内容"></el-input>
         <el-button @click="scanCompleted" style="float: right" type="primary">扫码完成</el-button>
         <el-button @click="clearClick" style="float: right" type="danger">清除</el-button>
       </el-card>
@@ -81,45 +81,58 @@
             <span style="display: none">{{cakeLamp.release}}</span>
             <span>&nbsp;允许放行</span>
           </el-col>
         </el-row>
         <el-row style="margin-top: 20px">
           <el-col :span="12">
             <el-input v-model="serialPortContent" style="width: 150px;" placeholder="请输入内容"></el-input>
           </el-col>
           <el-col :span="12">
             <el-button @click="serialPortMethod" type="primary">串口获取数据</el-button>
           </el-col>
         </el-row>
       </el-card>
     </el-col>
     <el-col :span="18">
       <el-tabs type="border-card"  style="height: 600px">
         <el-tab-pane>
       <el-tabs type="border-card"  style="height: 600px" v-model="activeName" @tab-click="changeMenu">
         <el-tab-pane name="first">
           <span slot="label"> <a class="el-icon-date"></a>首页</span>
           <el-col :span="8">
             <el-table>
               <el-table-column label="序号" align="center" prop="repairIdentification" width="50px"/>
               <el-table-column label="操作内容" align="center" prop="boxCode"  width="300px"/>
             <el-table :data="formulaChildList">
               <el-table-column label="排序" width="60" align="center" prop="stepSort">
               </el-table-column>
               <el-table-column label="操作内容" :show-overflow-tooltip='true' align="center" prop="operationSteps">
               </el-table-column>
             </el-table>
           </el-col>
           <el-col :span="16">
             <el-image style="height: 520px;width: 100%" :src="imgSrc"></el-image>
           </el-col>
         </el-tab-pane>
         <el-tab-pane>
         <el-tab-pane name="second">
           <span slot="label"> <b class="el-icon-date"></b>物料BOM</span>
           <el-empty >
           <el-empty>
             <span slot="description">暂无数据</span>
           </el-empty>
         </el-tab-pane>
         <el-tab-pane>
           <span slot="label"> <c class="el-icon-date"></c>采集清单</span>
           <el-empty >
         <el-tab-pane name="third">
           <span slot="label"> <b class="el-icon-date"></b>采集清单</span>
           <el-empty>
             <span slot="description">暂无数据</span>
           </el-empty>
         </el-tab-pane>
         <el-tab-pane>
           <span slot="label"> <d class="el-icon-date"></d>安灯状态</span>
           <el-empty >
         <el-tab-pane name="fourth">
           <span slot="label"> <b class="el-icon-date"></b>安灯状态</span>
           <el-empty>
             <span slot="description">暂无数据</span>
           </el-empty>
         </el-tab-pane>
         <el-tab-pane>
           <span slot="label"> <e class="el-icon-date"></e>工艺配方</span>
           <el-empty >
         <el-tab-pane name="fifth">
           <span slot="label"> <b class="el-icon-date"></b>工艺配方</span>
           <el-empty>
             <span slot="description">暂无数据</span>
           </el-empty>
         </el-tab-pane>
@@ -131,13 +144,22 @@
<script>
import {listWorkReport} from "@/api/main/om/workReport/workReport";
import {listStationConf,getIpv4} from "@/api/main/sc/stationConf";
import {listFormulaChild} from "@/api/main/bs/formulaChild/formulaChild";
export default {
  name: "stationTerminal",
  data() {
    return {
      serialPortContent: '',
      // 查询参数
      formulaChildParams: {
        pageNum: 1,
        pageSize: 10,
        productCode: null,
      },
      // 配方配置子信息表格数据
      formulaChildList: [],
      ipAddress: '',
      input: null,
      imgSrc: '',
      headContent: {
        processesCode: 'OP1010',
@@ -157,6 +179,12 @@
        pageSize: 10,
        sfcCode: null,
      },
      // 查询参数
      StationConfQueryParams: {
        pageNum: 1,
        pageSize: 10,
        ipAddress: null,
      },
      cakeLamp: {
        plcState: 1, //plc
        scannerState: 1, //扫码枪
@@ -164,28 +192,60 @@
        scanFinish: 0,
        startWork: 0,
        release: 0 //允许放行
      }
      },
      content: '',
      activeName: 'first',
      url: "ws://192.168.10.184:8080/websocket/message/",
      message: "",
      text_content: "",
      ws: null,
      inputValue: '9'
    }
  },
  beforeDestroy() {
    this.exit();
  },
  created() {
    this.getIPAddress();
    this.getStationConfList();
    this.initStation();
    // this.getStationConfList();
    // setTimeout(() => {
    //   this.connectWebsocket();
    // }, 3000);
  },
  mounted() {
  },
  methods: {
    serialPortMethod(){
    },
    /** 查询配方配置子信息列表 */
    getListFormulaChild() {
      this.formulaChildParams.productCode = this.workpieceInformation.productCode
      listFormulaChild(this.formulaChildParams).then(response => {
        this.formulaChildList = response.rows;
      });
    },
    changeMenu(tab, event) {
      console.log(tab, event);
    },
    clearClick(){
      this.$message('这是一条清除消息提示');
      this.headContent.sfcCode = null
    },
    scanCompleted(){
      this.$message('扫码完成'+this.input);
      this.headContent.sfcCode = this.input
      this.queryParams.sfcCode = this.input
      this.$message('扫码完成'+this.content);
      this.headContent.sfcCode = this.content
      this.queryParams.sfcCode = this.content
      this.getList()
      // this.getListFormulaChild()
      this.cakeLamp.scanFinish = 1
      this.cakeLamp.startWork = 1
    },
    /** 查询报工记录 表列表 */
    getList() {
      listWorkReport(this.queryParams).then(response => {
    async getList() {
      await listWorkReport(this.queryParams).then(response => {
        let rowsData = response.rows[0];
        this.workpieceInformation.workOrderCode = rowsData.workOrderCode;
        this.workpieceInformation.productCode = rowsData.productCode;
@@ -195,28 +255,107 @@
          this.workpieceInformation.beat++;
        }, 1000);
      });
      this.getListFormulaChild()
    },
    allowRelease(){
      clearInterval(this.timer);
      this.$message('保存节拍为'+this.workpieceInformation.beat+'秒');
    },
    getIPAddress() {
      this.ipAddress = window.location.hostname;
    },
    /** 查询工位终端配置列表 */
    getStationConfList() {
      let queryParams = {
        ipAddress: null,
    // async getStationConfList() {
    //   await getIpv4().then(response => {
    //     this.StationConfQueryParams.ipAddress = response.msg
    //     console.log('查询到本工位IP为'+this.StationConfQueryParams.ipAddress)
    //   });
    //   listStationConf(this.StationConfQueryParams).then(response => {
    //     let rows = response.rows[0]
    //     if(response.rows.length===0){
    //       this.$message('该工位没有配置IP,请联系管理员配置IP');
    //       return
    //     }
    //     this.headContent.processesName = rows.processesName
    //     this.headContent.processesCode = rows.processesCode
    //     console.log('设置工位编码'+this.headContent.processesCode)
    //
    //   });
    // },
    // connectWebsocket() {
    //   console.log('websocket连接工位为'+this.headContent.processesCode)
    //   const wsuri = this.url + this.headContent.processesCode;
    //   this.ws = new WebSocket(wsuri);
    //   const self = this;
    //   this.ws.onopen = function (event) {
    //     // self.text_content = self.text_content + "已经打开连接!" + "\n";
    //     this.$message('websocket连接成功!');
    //   };
    //   this.ws.onmessage = function (event) {
    //     self.text_content = event.data + "\n";
    //     console.log(event.data)
    //     if(event.data === "IN"){
    //       self.cakeLamp.InPlace = "1"
    //     }else if(event.data === "OUT"){
    //       self.cakeLamp.outRsSign = "1"
    //     }
    //   };
    // },
    exit() {
      if (this.ws) {
        this.ws.close();
        this.ws = null;
      }
      getIpv4().then(response => {
        queryParams.ipAddress = response.msg
    },
    send() {
      if (this.ws) {
        this.ws.send(this.message);
      } else {
        alert("未连接到服务器");
      }
    },
    async initStation(){
      await getIpv4().then(response => {
        this.StationConfQueryParams.ipAddress = response.msg
        console.log('查询到本工位IP为'+this.StationConfQueryParams.ipAddress)
      });
      listStationConf(queryParams).then(response => {
      await listStationConf(this.StationConfQueryParams).then(response => {
        let rows = response.rows[0]
        if(response.rows.length===0){
          this.$message('该工位没有配置IP,请联系管理员配置IP');
          return
        }
        this.headContent.processesName = rows.processesName
        this.headContent.processesCode = rows.processesCode
        console.log('设置工位编码'+this.headContent.processesCode)
      });
      console.log('websocket连接工位为'+this.headContent.processesCode)
      const wsuri = this.url + this.headContent.processesCode;
      this.ws = new WebSocket(wsuri);
      const self = this;
      this.ws.onopen = function (event) {
        this.$message('websocket连接成功!');
      };
      this.ws.onmessage = function (event) {
        self.text_content = event.data + "\n";
        console.log(event.data)
        if(event.data === "IN"){
          self.cakeLamp.InPlace = 1
        }else if(event.data === "OUT"){
          self.cakeLamp.release = 1
          setTimeout(() => {
            this.resetting()
          }, 2000); // 延时2秒触发
        }
      };
    },
    resetting() {
      this.cakeLamp = {
        InPlace: 0,
        release: 0,
        startWork: 0,
        scanFinish: 0,
      }
    }
  }
}
@@ -255,3 +394,4 @@
  font-size: 15px;
}
</style>