From 706d57aa682845cf1bc01cbfd1087c4c0f33093f Mon Sep 17 00:00:00 2001
From: admin <15939171744@163.com>
Date: 星期二, 12 十一月 2024 09:46:48 +0800
Subject: [PATCH] 优化

---
 jcdm-ui/src/views/main/kb/preInstalledTerminal/index.vue |  460 ++++++++------------------------------------------------
 1 files changed, 69 insertions(+), 391 deletions(-)

diff --git a/jcdm-ui/src/views/main/kb/preInstalledTerminal/index.vue b/jcdm-ui/src/views/main/kb/preInstalledTerminal/index.vue
index b6332cb..52d0047 100644
--- a/jcdm-ui/src/views/main/kb/preInstalledTerminal/index.vue
+++ b/jcdm-ui/src/views/main/kb/preInstalledTerminal/index.vue
@@ -1,23 +1,34 @@
 <template>
   <div class="app-container">
    <el-row :gutter="5">
-     <el-col :span="7">
-       <el-card shadow="never">
+     <el-col :span="4">
+       <el-card style="height: 72px;padding-top: 9px" shadow="never">
          <span class="head-font">宸ヤ綅缂栧彿 : {{headContent.processesCode}}</span>
          <span hidden>{{headContent.inboundTime}}</span>
        </el-card>
      </el-col>
-     <el-col :span="7">
+     <el-col :span="6">
        <el-card shadow="never">
-         <span class="head-font">宸ヤ綅鍚嶇О : {{headContent.processesName}}</span>
+         <span class="head-font">鐗╂枡缂栫爜 : </span>
+         <el-input style="width: 70%" ref="inputData" v-model="materialCode" @change="materialCodeHandleEnter" placeholder="璇锋壂鎻忔�绘垚搴忓垪鍙�"></el-input>
        </el-card>
      </el-col>
-     <el-col :span="10">
+     <el-col :span="6">
        <el-card shadow="never">
+         <span class="head-font">浜у搧鍨嬪彿 : </span>
+         <el-select style="width: 70%" v-model="selectProductCode" placeholder="璇烽�夋嫨">
+           <el-option
+             v-for="item in options"
+             :key="item.value"
+             :label="item.label"
+             :value="item.value">
+           </el-option>
+         </el-select>
+       </el-card>
+     </el-col>
+     <el-col :span="8">
+       <el-card style="height: 72px;padding-top: 9px" shadow="never">
          <span class="head-font">浜у搧搴忓垪鍙� : {{headContent.sfcCode}}</span>
-<!--         <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 type="primary" style="float: right" icon="el-icon-search" size="mini" @click="serialLink">涓插彛杩炴帴</el-button>
          <el-button @click="clearClick" style="float: right" type="danger" size="mini">娓呴櫎</el-button>
        </el-card>
      </el-col>
@@ -48,143 +59,6 @@
        </el-tabs>
      </el-col>
    </el-row>
-    <el-dialog v-dialogpop-up :title="title" :visible.sync="open1" width="1000" append-to-body>
-      <el-row
-        type="flex"
-        class="row-bg"
-        justify="center"
-        v-show="portsList.length === 0"
-      >
-        <el-col :span="7">
-          <div style="margin-top: 400px">
-          <span style="display: block">
-            浠呮敮鎸丆hrome 89+鎴栬�匛dge 89+娴忚鍣�(瀹夊叏涓婁笅鏂囷紙HTTPS锛変腑鍙敤)
-          </span>
-            <el-button type="primary" @click="obtainAuthorization">鎺堟潈</el-button>
-          </div>
-        </el-col>
-      </el-row>
-      <el-form
-        v-show="portsList.length > 0"
-        ref="form1"
-        :model="form1"
-        label-width="100px">
-        <el-row>
-          <el-col :span="24"
-          ><div>
-            <el-form-item label="涓插彛">
-              <el-select
-                v-model="form1.port"
-                filterable
-                placeholder="璇烽�夋嫨涓插彛"
-                :disabled="isDisable"
-              >
-                <el-option
-                  v-for="item in portsList"
-                  :key="item.value"
-                  :label="item.label"
-                  :value="item.value"
-                >
-                </el-option>
-              </el-select>
-            </el-form-item>
-            <el-form-item label="娉㈢壒鐜�">
-              <el-autocomplete
-                popper-class="my-autocomplete"
-                v-model="form1.baudRate"
-                :fetch-suggestions="querySearch"
-                placeholder="璇疯緭鍏ユ尝鐗圭巼"
-                :disabled="isDisable"
-              >
-                <i class="el-icon-edit el-input__icon" slot="suffix"> </i>
-                <template slot-scope="{ item }">
-                  <div class="name">{{ item.value }}</div>
-                  <span class="addr">{{ item.address }}</span>
-                </template>
-              </el-autocomplete>
-            </el-form-item>
-            <el-form-item label="鏁版嵁浣�">
-              <el-select
-                v-model="form1.dataBits"
-                placeholder="璇烽�夋嫨鏁版嵁浣�"
-                :disabled="isDisable"
-              >
-                <el-option label="7" value="7"></el-option>
-                <el-option label="8" value="8"></el-option>
-              </el-select>
-            </el-form-item>
-            <el-form-item label="鍋滄浣�">
-              <el-select
-                v-model="form1.stopBits"
-                placeholder="璇烽�夋嫨鍋滄浣�"
-                :disabled="isDisable"
-              >
-                <el-option label="1" value="1"></el-option>
-                <el-option label="2" value="2"></el-option>
-              </el-select>
-            </el-form-item>
-
-            <el-form-item label="鏍¢獙浣�">
-              <el-select
-                v-model="form1.parity"
-                placeholder="璇烽�夋嫨鏍¢獙浣�"
-                :disabled="isDisable"
-              >
-                <el-option label="None" value="none"></el-option>
-                <el-option label="Even" value="even"></el-option>
-                <el-option label="Odd" value="odd"></el-option>
-              </el-select>
-            </el-form-item>
-
-            <el-form-item label="娴佹帶鍒�">
-              <el-select
-                v-model="form1.flowControl"
-                placeholder="璇烽�夋嫨娴佹帶鍒�"
-                :disabled="isDisable"
-              >
-                <el-option label="None" value="none"></el-option>
-                <el-option label="HardWare" value="hardware"></el-option>
-              </el-select>
-            </el-form-item>
-            <el-form-item label="鏄剧ず鍘嗗彶">
-              <el-switch
-                v-model="form1.isShowHistory"
-                @change="loadHistory"
-              ></el-switch>
-              <el-button
-                type="danger"
-                icon="el-icon-delete"
-                circle
-                title="娓呯┖鍘嗗彶"
-                @click="clearHistory"
-              ></el-button>
-            </el-form-item>
-            <el-form-item label="鍙戦�佸尯璁剧疆" v-show="isShowSendArea">
-              <el-form-item label="鍙戦�佹牸寮�">
-                <el-radio-group v-model="form1.type">
-                  <el-radio label="1">ASCII</el-radio>
-                  <el-radio label="2">HEX</el-radio>
-                </el-radio-group>
-              </el-form-item>
-              <el-form-item label="鍙戦�佷俊鎭�">
-                <el-input type="textarea" v-model="form1.sendMsg"></el-input>
-              </el-form-item>
-              <el-button type="primary" @click="sendCommon">鍙戦��</el-button>
-            </el-form-item>
-
-            <el-form-item>
-              <el-button :type="btnType" @click="connectBtn">{{
-                  btnText
-                }}</el-button>
-              <el-button type="info" @click="obtainAuthorization"
-              >鏂板鎺堟潈</el-button
-              >
-            </el-form-item>
-          </div>
-          </el-col>
-        </el-row>
-      </el-form>
-    </el-dialog>
   </div>
 </template>
 <script>
@@ -212,6 +86,14 @@
   name: "stationTerminal",
   data() {
     return {
+      selectProductCode: '9900200461',
+      options: [{
+        value: '9900200461',
+        label: '9900200461'
+      }, {
+        value: '9900207783',
+        label: '9900207783'
+      }],
       showInput: true,
       serialPortContent: '',
       // 鏌ヨ鍙傛暟
@@ -261,7 +143,7 @@
       },
       content: '',
       activeName: 'first',
-      // url: "ws://10.103.210.248:8080/websocket/message/",
+      // url: "ws://192.168.10.231:8080/websocket/message/",
       url: "ws://192.168.20.250:8080/websocket/message/",
       message: "",
       text_content: "",
@@ -291,42 +173,33 @@
 
       passingStationForm: {},
       originalArray: [],
+      materialCode: '',
     }
-  },
-  beforeDestroy() {
-    this.exit();
   },
   created() {
-    this.initStation();
-    // this.getStationConfList();
-    // setTimeout(() => {
-    //   this.connectWebsocket();
-    // }, 3000);
-  },
-  mounted() {
-    if ("serial" in navigator) {
-      this.myserialport = new MySerialPort();
-      this.getPorts();
-      navigator.serial.addEventListener("connect", (e) => {
-        this.$message.success("璁惧宸茶繛鎺�");
-        this.getPorts();
-      });
-      navigator.serial.addEventListener("disconnect", (e) => {
-        this.$message.error("璁惧宸叉柇寮�");
-      });
-      this.restaurants = this.loadAll();
-    } else {
-      this.$message.error(
-        "褰撳墠涓篐TTP妯″紡鎴栬�呮祻瑙堝櫒鐗堟湰杩囦綆锛屼笉鏀寔缃戦〉杩炴帴涓插彛"
-      );
-    }
-  },
-  computed: {
-    isDisable() {
-      return this.btnType === "danger";
-    },
+    this.setFocus()
+    this.initStation()
   },
   methods: {
+
+    materialCodeHandleEnter() {
+      if(!this.headContent.sfcCode){
+        this.headContent.sfcCode = this.materialCode
+        this.headContent.inboundTime = this.getCurrentTime();
+        this.getList()
+      }else {
+        this.serialPortMethod(this.materialCode);
+        this.$message("鎵弿鐗╂枡缂栫爜"+this.materialCode);
+        this.setFocus();
+        this.materialCode = '';
+      }
+      this.materialCode = ''
+    },
+    setFocus(){
+      this.$nextTick(()=>{
+        this.$refs.inputData.focus()
+      })
+    },
     serialLink() {
       this.open1 = true
     },
@@ -359,8 +232,8 @@
       let formulaChildParams = {
         scanBarcode: value,
         sfcBarcode: this.headContent.sfcCode,
-        workOrderNo: this.workpieceInformation.workOrderNo,
-        productCode: "1P102S",
+        workOrderNo: '-',
+        productCode: this.selectProductCode,
         locationCode: this.headContent.processesCode,
         collectionTime: new Date()
       }
@@ -378,7 +251,7 @@
     },
     /** 鏌ヨ閰嶆柟閰嶇疆瀛愪俊鎭垪琛� */
     getListFormulaChild() {
-      this.formulaChildParams.productCode = "1P102S"
+      this.formulaChildParams.productCode = this.selectProductCode
       this.formulaChildParams.processesCode = this.headContent.processesCode
       console.log(this.formulaChildParams)
       noPageListFormulaChild(this.formulaChildParams).then(response => {
@@ -400,7 +273,8 @@
               }
             })
           }
-
+        }else {
+          this.$message.error("鏃犻厤鏂瑰姞杞借妫�鏌ワ紒锛�");
         }
       });
     },
@@ -416,9 +290,17 @@
         locationCode: this.headContent.processesCode,
       }
       clearWorkpieceRelease(param).then(response => {});
+
+
       this.headContent.sfcCode = ''
-      this.formulaChildList = [];
+      // this.formulaChildList = [];
+      this.materialCode = ''
       this.$message('娓呴櫎鎴愬姛锛�');
+      this.setFocus()
+      setTimeout(() => {
+        // 杩欓噷鏄綘鎯宠寤舵椂鍚庢墽琛岀殑閫昏緫
+        this.getList()
+      }, 500); // 500姣 = 0.5绉�
     },
     scanCompleted(){
       this.$message('鎵爜瀹屾垚'+this.content);
@@ -485,16 +367,17 @@
         console.log('璁剧疆宸ヤ綅缂栫爜' + this.headContent.processesCode)
 
       });
-      this.conCom()
       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杩炴帴鎴愬姛锛�');
+        self.$message('websocket杩炴帴鎴愬姛锛�');
       };
       this.ws.onmessage = function (event) {
         if(event.data.includes("[")) {
+          console.log(self.selectProductCode)
+
           let formulaChilds = "";
           self.formulaChildList.sort((a, b) => a.stepSort - b.stepSort);
           self.formulaChildList
@@ -510,8 +393,8 @@
           const param = {
             tightenTheArray: event.data,
             paramCode: formulaChilds.paramCode,
-            // workOrderNo: self.workpieceInformation.workOrderNo,
-            // productCode: "1P102S",
+            workOrderNo: '-',
+            productCode: self.selectProductCode,
             locationCode: self.headContent.processesCode,
             productBarcode: self.headContent.sfcCode,
             spareField2: formulaChilds.spareField2,
@@ -554,9 +437,6 @@
         }
       };
     },
-
-
-
     //鎺ュ彈鏁版嵁鐨勫洖璋�
     callBack(value) {
       if (this.form1.isShowHistory) this.form1.desc = this.readLi().join("");
@@ -573,209 +453,7 @@
           this.headContent.inboundTime = this.getCurrentTime();
           this.getList()
         }
-
       }
-    },
-    clearHistory() {
-      this.form1.desc = "";
-      this.myserialport.state.readValue = [];
-    },
-    loadHistory() {
-      if (this.form1.isShowHistory) this.form1.desc = this.readLi().join("");
-      else {
-        let temp = this.readLi();
-        if (temp.length > 0) this.form1.desc = temp[temp.length - 1].join("");
-      }
-    },
-    readLi() {
-      let readType = this.readType;
-      return this.myserialport.state.readValue.map((items, index) => {
-        const item = items.value;
-        const type = items.type; // 1鎺ユ敹锛�2鍙戦��
-        let body = [];
-        if (item !== undefined) {
-          let strArr = [];
-          for (let hex of Array.from(item)) {
-            strArr.push(hex.toString(16).toLocaleUpperCase());
-          }
-          if (strArr.includes("D") && strArr.includes("A")) {
-            if (strArr.indexOf("A") - strArr.indexOf("D") === 1) {
-              strArr.splice(strArr.indexOf("D"), 1);
-              strArr.splice(strArr.indexOf("A"), 1, <br key={0} />);
-            }
-          }
-          strArr = strArr.map((item) => {
-            if (typeof item === "string") {
-              if (readType === 1) {
-                return this.myserialport.hex2a(parseInt(item, 16));
-              } else if (readType === 2) {
-                return item + " ";
-              }
-            }
-            return item;
-          });
-          if (typeof strArr[strArr.length - 1] === "string") {
-            strArr.push("\r\n");
-          }
-          body.push(strArr.join(""));
-        }
-        return body;
-      });
-    },
-    conCom(){
-      try {
-        this.myserialport.state.baudRate = this.form1.baudRate;
-        this.myserialport.state.dataBits = this.form1.dataBits;
-        this.myserialport.state.stopBits = this.form1.stopBits;
-        this.myserialport.state.parity = this.form1.parity;
-        this.myserialport.state.flowControl = this.form1.flowControl;
-        this.myserialport.openPort(0, true, this.callBack);
-        console.log(this.form1.port)
-      } catch (error) {
-        this.$message.error("涓插彛杩炴帴澶辫触锛佽妫�鏌ヤ覆鍙f槸鍚﹀凡琚崰鐢�");
-      }
-      if (this.myserialport.state.isOpen) {
-        this.$message.success("涓插彛杩炴帴鎴愬姛");
-      }
-    },
-    //杩炴帴
-    async connectBtn() {
-      if (this.btnType === "primary") {
-        try {
-          this.myserialport.state.baudRate = this.form1.baudRate;
-          this.myserialport.state.dataBits = this.form1.dataBits;
-          this.myserialport.state.stopBits = this.form1.stopBits;
-          this.myserialport.state.parity = this.form1.parity;
-          this.myserialport.state.flowControl = this.form1.flowControl;
-          await this.myserialport.openPort(this.form1.port, true, this.callBack);
-          console.log(this.form1.port)
-        } catch (error) {
-          this.$message.error("涓插彛杩炴帴澶辫触锛佽妫�鏌ヤ覆鍙f槸鍚﹀凡琚崰鐢�");
-        }
-        if (this.myserialport.state.isOpen) {
-          this.$message.success("涓插彛杩炴帴鎴愬姛");
-          this.open1 = false
-          this.btnType = "danger";
-          this.btnText = "鍏抽棴涓插彛";
-        }
-      } else {
-        this.myserialport.openPort(this.form1.port, false, this.callBack);
-        this.$message.success("涓插彛鍏抽棴鎴愬姛");
-        this.btnType = "primary";
-        this.btnText = "杩炴帴涓插彛";
-      }
-    },
-    //鎺堟潈
-    async obtainAuthorization() {
-      if ("serial" in navigator) {
-        console.log("The Web Serial API is supported.");
-        if (!this.myserialport) this.myserialport = new MySerialPort();
-        try {
-          await this.myserialport.handleRequestPort();
-          this.$message.success("涓插彛鎺堟潈鎴愬姛");
-          this.getPortInfo(this.myserialport.state.ports);
-        } catch (error) {
-          this.$message.warning("鏈�夋嫨鏂颁覆鍙f巿鏉冿紒");
-        }
-      } else {
-        this.$message.error(
-          "褰撳墠涓篐TTP妯″紡鎴栬�呮祻瑙堝櫒鐗堟湰杩囦綆锛屼笉鏀寔缃戦〉杩炴帴涓插彛"
-        );
-      }
-    },
-    //涓插彛鍒楄〃鍒濆鍖�
-    getPortInfo(portList) {
-      this.portsList = [];
-      portList.map((port, index) => {
-        const { usbProductId, usbVendorId } = port.getInfo();
-        if (usbProductId === undefined || usbVendorId === undefined) {
-          this.portsList.push({ label: "鏈煡璁惧" + index, value: index });
-        } else {
-          const usbVendor = USBDevice.filter(
-            (item) => parseInt(item.vendor, 16) === usbVendorId
-          );
-          let usbProduct = [];
-          if (usbVendor.length === 1) {
-            usbProduct = usbVendor[0].devices.filter(
-              (item) => parseInt(item.devid, 16) === usbProductId
-            );
-          }
-          this.portsList.push({ label: usbProduct[0].devname, value: index });
-        }
-      });
-    },
-    // 鍙戦��
-    async sendCommon() {
-      if (this.myserialport.state.isOpen) {
-        if (this.form1.sendMsg.length !== 0) {
-          const writeType = this.form1.type;
-          let value = this.form1.sendMsg;
-          let arr = [];
-          if (writeType === 1) {
-            // ASCII
-            for (let i = 0; i < value.length; i++) {
-              arr.push(this.myserialport.a2hex(value[i]));
-            }
-          } else if (writeType === 2) {
-            // HEX
-            if (/^[0-9A-Fa-f]+$/.test(value) && value.length % 2 === 0) {
-              for (let i = 0; i < value.length; i = i + 2) {
-                arr.push(parseInt(value.substring(i, i + 2), 16));
-              }
-            } else {
-              this.$message.error("鏍煎紡閿欒");
-              return;
-            }
-          }
-          this.myserialport.writeText(arr);
-        } else {
-          this.$message.warning("璇疯緭鍏ュ彂閫佺殑淇℃伅");
-        }
-      } else {
-        this.$message.warning("涓插彛澶勪簬鍏抽棴鐘舵�侊紝璇疯繛鎺ヤ覆鍙�");
-      }
-    },
-    async getPorts() {
-      await this.myserialport.getPorts();
-      this.getPortInfo(this.myserialport.state.ports);
-    },
-    querySearch(queryString, cb) {
-      var restaurants = this.restaurants;
-      var results = queryString
-        ? restaurants.filter(this.createFilter(queryString))
-        : restaurants;
-      // 璋冪敤 callback 杩斿洖寤鸿鍒楄〃鐨勬暟鎹�
-      cb(results);
-    },
-    createFilter(queryString) {
-      return (restaurant) => {
-        return (
-          restaurant.value.toLowerCase().indexOf(queryString.toLowerCase()) ===
-          0
-        );
-      };
-    },
-    loadAll() {
-      return [
-        { value: "110" },
-        { value: "300" },
-        { value: "600" },
-        { value: "1200" },
-        { value: "2400" },
-        { value: "4800" },
-        { value: "7200" },
-        { value: "9600" },
-        { value: "14400" },
-        { value: "19200" },
-        { value: "28800" },
-        { value: "38400" },
-        { value: "56000" },
-        { value: "57600" },
-        { value: "76800" },
-        { value: "115200" },
-        { value: "230400" },
-        { value: "460800" },
-      ];
     },
   }
 }

--
Gitblit v1.9.3