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