From b0cece854bfce6a0caaf22e73643830e8b8cf67d Mon Sep 17 00:00:00 2001 From: admin <15939171744@163.com> Date: 星期二, 15 十月 2024 10:40:02 +0800 Subject: [PATCH] 优化 --- jcdm-ui/src/views/main/kb/stationTerminal/index.vue | 1041 +++++++++++++++++++++++---------------------------------- 1 files changed, 415 insertions(+), 626 deletions(-) diff --git a/jcdm-ui/src/views/main/kb/stationTerminal/index.vue b/jcdm-ui/src/views/main/kb/stationTerminal/index.vue index 6f7a94a..8a97c53 100644 --- a/jcdm-ui/src/views/main/kb/stationTerminal/index.vue +++ b/jcdm-ui/src/views/main/kb/stationTerminal/index.vue @@ -2,22 +2,15 @@ <div class="app-container"> <el-row :gutter="5"> <el-col :span="7"> - <el-card shadow="never"> - <span class="head-font">宸ヤ綅缂栧彿 : {{headContent.processesCode}}</span> + <el-card style="height: 71px;padding-top: 6px" shadow="never"> + <span class="head-font">宸ヤ綅缂栧彿 : {{headContent.processesCode}}</span> </el-card> </el-col> - <el-col :span="7"> + <el-col :span="17"> <el-card shadow="never"> - <span class="head-font">宸ヤ綅鍚嶇О : {{headContent.processesName}}</span> - </el-card> - </el-col> - <el-col :span="10"> - <el-card 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> + <span class="head-font">鐗╂枡缂栫爜 : </span> + <el-input style="width: 50%" ref="inputData" v-model="materialCode" @change="handleEnter" placeholder="璇锋壂鎻忕墿鏂欑紪鐮�"></el-input> + <el-button @click="clearClick" style="float: right" type="danger" >娓呴櫎</el-button> </el-card> </el-col> @@ -30,11 +23,14 @@ <span style="font-weight: bold">褰撳墠宸ヤ欢淇℃伅</span> </div> <el-descriptions :column="1" border :content-style="{'min-width': '140px'}"> + <el-descriptions-item label="浜у搧搴忓垪鍙�"> + <span>{{headContent.sfcCode}}</span> + </el-descriptions-item> <el-descriptions-item label="宸ュ崟缂栧彿"> <span>{{workpieceInformation.workOrderNo}}</span> </el-descriptions-item> - <el-descriptions-item label="鐗╂枡缂栫爜"> - <span>{{workpieceInformation.materialCode}}</span> + <el-descriptions-item label="浜у搧缂栫爜"> + <span>{{workpieceInformation.productCode}}</span> </el-descriptions-item> <el-descriptions-item label="璁″垝鏁伴噺"> <span>{{workpieceInformation.planQty}}</span> @@ -80,39 +76,223 @@ <span> 鍏佽鏀捐</span> </el-col> </el-row> - <el-row v-show="orderFlag" style="margin-top: 20px"> - <el-button @click="getWorkOrders" type="warning" size="mini">鎺ユ敹宸ュ崟</el-button> - </el-row> -<!-- <el-row v-show="showInput" style="margin-top: 20px">--> -<!-- <el-button @click="bindYzSfc" type="primary">缁戝畾</el-button>--> -<!-- </el-row>--> + <el-row v-show="printFlag" style="margin-top: 20px"> + <el-button id="print" v-print="'#printMe'" type="primary">鎵撳嵃</el-button> + <div style="display: none"> + <div id="printMe"> + <div style="text-align: center;margin-top: 70px"> + <span style="font-size: 29px;">鐢甸┍绯荤粺鎬绘垚</span> + </div> + <div style="display: flex;margin-top: 2px;margin-left: 39px;font-size: 15px"> + <div class="div1"> + <div > + <span>鐢垫満鍨嬪彿锛�</span><span>TZ180XSDSZX01</span><br> + </div> + <div style="margin-top: 4px"> + <span>棰濆畾鍔熺巼锛�</span><span>30kW</span><br> + </div> + <div style="margin-top: 4px"> + <span>棰濆畾鎵煩锛�</span><span>70N.m</span><br> + </div> + <div style="margin-top: 4px"> + <span>棰濆畾鐢靛帇锛�</span><span>336VDC</span><br> + </div> + <div style="margin-top: 4px"> + <span>宸ヤ綔鍒讹細</span><span>S9</span><br> + </div> + <div style="margin-top: 4px"> + <span>鎸佺画宸ヤ綔鐢垫祦锛�</span><span>115A</span><br> + </div> + <div style="margin-top: 4px"> + <span>鐩告暟锛�</span><span>3</span><br> + </div> + <div style="margin-top: 4px"> + <span>闆朵欢鍙凤細</span><span>{{printMaterialCode}}</span><br> + </div> + </div> -<!-- <el-row v-show="onLineBinDing" style="margin-top: 20px">--> -<!-- <el-col></el-col>--> -<!-- <span style="width: 130px;" class="head-font">灏忚溅鐮� : {{headContent.cardCode}}</span>--> -<!-- </el-row>--> -<!-- <el-row v-show="onLineBinDing" style="margin-top: 20px">--> -<!-- <el-button @click="bindcardCode" type="primary">缁戝畾</el-button>--> -<!-- </el-row>--> + <div class="div2" style="font-size: 15px;margin-left: 4px"> + <div> + <span>鎺у埗鍣ㄥ瀷鍙凤細</span><span>KTZ34X23SZX07</span><br> + </div> + <div style="margin-top: 4px"> + <span>宄板�煎姛鐜囷細</span><span>60kW</span><br> + </div> + <div style="margin-top: 4px"> + <span>宄板�艰浆鐭╋細</span><span>175N.m</span><br> + </div> + <div style="margin-top: 4px"> + <span>鏈�楂樿浆閫燂細</span><span>12000rpm</span><br> + </div> + <div style="margin-top: 4px"> + <span>闃叉姢绛夌骇锛�</span><span>IP67</span><br> + </div> + <div style="margin-top: 4px"> + <span>宄板�煎伐浣滅數娴侊細</span><span>230A</span><br> + </div> + <div style="margin-top: 4px"> + <span>缁濈紭绛夌骇锛�</span><span>H</span><br> + </div> + <div style="margin-top: 4px"> + <span>鍑哄巶缂栧彿锛�</span><span>{{headContent.sfcCode}}</span><br> + </div> + </div> + </div> + <div style="margin-top: 2px;margin-left: 70px"> + <span style="font-size: 26px;">婀栧窞鏅鸿姱鍔ㄥ姏绯荤粺鍙戝睍鏈夐檺鍏徃</span> + </div> + + + <div style="text-align: center;margin-top: 101px;font-size: 20px"> + <div style="margin-top: 12px"> + <span style="font-size: 22px">TZ180XSDSZX01</span><br> + + </div> + <div style="margin-top: 4px"> + <span style="font-size: 22px">KTZ34X23SZX07</span><br> + + </div> + <div style="margin-top: 4px"> + <span style="font-size: 22px">993983</span><br> + + </div> + <div style="margin-top: 4px"> + <span style="font-size: 22px">{{printMaterialCode}}</span><br> + + </div> + <div style="margin-top: 4px"> + <span style="font-size: 22px">{{headContent.sfcCode}}</span> + + </div> + </div> + + <div style="margin-top: 57px;display: flex;margin-left: 40px"> + <div style="width: 30%;flex: 1"> + <VueQr :size='80' :margin='0' :text='this.text'></VueQr> + </div> + <div style="width: 70%;flex: 1;margin-top: 18px;margin-right: 29px"> + <span style="margin-left: -122px;font-size: 16px;font-family: FZYaoti;letter-spacing: -0.7px"> + P{{printMaterialCode}} + </span> + <span style="margin-left: -5px;font-size: 19px;font-family: FangSong;letter-spacing: -0.7px"> + # + </span> + <span style="margin-left: -9px;font-size: 16px;font-family: FZYaoti;letter-spacing: -0.7px"> + T{{headContent.sfcCode}} + </span><br> + + <span style="margin-left: -122px;font-size: 19px;font-family: FangSong;letter-spacing: -0.7px"> + # + </span> + <span style="margin-left: -9px;font-size: 16px;font-family: FZYaoti;letter-spacing: -0.7px"> + V993983 + </span> + <span style="margin-left: -4px;font-size: 19px;font-family: FangSong;letter-spacing: -0.7px"> + # + </span> + <span style="margin-left: -10px;font-size: 16px;font-family: FZYaoti;letter-spacing: -0.7px"> + SSW001.001 + </span> + <span style="margin-left: -4px;font-size: 19px;font-family: FangSong;letter-spacing: -0.7px"> + # + </span> + <span style="margin-left: -9px;font-size: 16px;font-family: FZYaoti;letter-spacing: -0.7px"> + HHW001.001 + </span> + <span style="margin-left: -6px;font-size: 19px;font-family: FangSong;letter-spacing: -0.7px"> + # + </span> + <span style="margin-left: -9px;font-size: 16px;font-family: FZYaoti;letter-spacing: -0.7px"> + NMCU + </span> +<!-- <span style="margin-left: -80px;font-size: 19px;font-family: FZYaoti;letter-spacing: -0.8px;font-weight: 100">--> +<!-- #V993983#SSW002.005#HHW001.001#NMCU--> +<!-- </span>--> + </div> + </div> + + <div style="margin-top: 44px;display: flex;margin-left: 40px"> + <div style="width: 30%;flex: 1"> + <VueQr :size='80' :margin='0' :text='this.text'></VueQr> + </div> + <div style="width: 70%;flex: 1;margin-top: 18px;margin-right: 29px"> +<!-- <span style="margin-left: -80px;font-size: 19px;font-family: FZYaoti;letter-spacing: -0.8px;font-weight: 100">--> +<!-- P9900200461#T{{headContent.sfcCode}}--> +<!-- </span><br>--> +<!-- <span style="margin-left: -80px;font-size: 19px;font-family: FZYaoti ;letter-spacing: -0.8px;font-weight: 100">--> +<!-- #V993983#SSW002.005#HHW001.001#NMCU--> +<!-- </span>--> + <span style="margin-left: -122px;font-size: 16px;font-family: FZYaoti;letter-spacing: -0.7px"> + P{{printMaterialCode}} + </span> + <span style="margin-left: -5px;font-size: 19px;font-family: FangSong;letter-spacing: -0.7px"> + # + </span> + <span style="margin-left: -9px;font-size: 16px;font-family: FZYaoti;letter-spacing: -0.7px"> + T{{headContent.sfcCode}} + </span><br> + + <span style="margin-left: -122px;font-size: 19px;font-family: FangSong;letter-spacing: -0.7px"> + # + </span> + <span style="margin-left: -9px;font-size: 16px;font-family: FZYaoti;letter-spacing: -0.7px"> + V993983 + </span> + <span style="margin-left: -4px;font-size: 19px;font-family: FangSong;letter-spacing: -0.7px"> + # + </span> + <span style="margin-left: -10px;font-size: 16px;font-family: FZYaoti;letter-spacing: -0.7px"> + SSW001.001 + </span> + <span style="margin-left: -4px;font-size: 19px;font-family: FangSong;letter-spacing: -0.7px"> + # + </span> + <span style="margin-left: -9px;font-size: 16px;font-family: FZYaoti;letter-spacing: -0.7px"> + HHW001.001 + </span> + <span style="margin-left: -6px;font-size: 19px;font-family: FangSong;letter-spacing: -0.7px"> + # + </span> + <span style="margin-left: -9px;font-size: 16px;font-family: FZYaoti;letter-spacing: -0.7px"> + NMCU + </span> + </div> + </div> + + <div style="text-align: center;margin-left: -190px;margin-top: 31px"> + <div style="margin-top: 4px"> + <span>{{printMaterialCode}}</span><br> + </div> + <div style="margin-top: 8px"> + <span>MCU</span><br> + </div> + <div style="margin-top: 8px"> + <span>HW 001.001</span><br> + </div> + <div style="margin-top: 8px"> + <span>SW 001.001</span><br> + </div> + </div> + + </div> + </div> + </el-row> + <el-row v-show="orderFlag" style="margin-top: 20px"> +<!-- <el-button @click="getWorkOrders" type="warning" size="mini">鎺ユ敹宸ュ崟</el-button>--> + </el-row> </el-card> </el-col> <el-col :span="17"> - <el-tabs type="border-card" style="height: 600px" v-model="activeName" @tab-click="changeMenu"> + <el-tabs type="border-card" style="height: 600px" v-model="activeName"> <el-tab-pane name="first"> <span slot="label"> <a class="el-icon-date"></a>棣栭〉</span> <el-col :span="24"> <el-table height="500" :cell-style="rowStyle" :data="formulaChildList"> -<!-- <el-table-column label="鎺掑簭" width="60" align="center" type="index">--> -<!-- </el-table-column>--> <el-table-column label="鎷х揣姝ュ彿" width="80" align="center" prop="stepSort"> </el-table-column> <el-table-column label="鎿嶄綔鍐呭" align="center" prop="operationSteps"> </el-table-column> -<!-- <el-table-column label="涓婇檺" width="60" align="center" prop="spareField3">--> -<!-- </el-table-column>--> -<!-- <el-table-column label="涓嬮檺" width="60" align="center" prop="spareField4">--> -<!-- </el-table-column>--> <el-table-column label="浜у搧缂栧彿" width="80" align="center" prop="productCode"> </el-table-column> <el-table-column label="鐗╂枡缂栫爜" width="110" align="center" prop="materialCode"> @@ -124,174 +304,10 @@ </el-table> </el-col> -<!-- <el-col :span="14">--> -<!-- <el-image style="height: 520px;width: 100%" :src="imgSrc"></el-image>--> -<!-- </el-col>--> </el-tab-pane> -<!-- <el-tab-pane name="second">--> -<!-- <span slot="label"> <b class="el-icon-date"></b>鐗╂枡BOM</span>--> -<!-- <el-empty>--> -<!-- <span slot="description">鏆傛棤鏁版嵁</span>--> -<!-- </el-empty>--> -<!-- </el-tab-pane>--> -<!-- <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 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 name="fifth">--> -<!-- <span slot="label"> <b class="el-icon-date"></b>宸ヨ壓閰嶆柟</span>--> -<!-- <el-empty>--> -<!-- <span slot="description">鏆傛棤鏁版嵁</span>--> -<!-- </el-empty>--> -<!-- </el-tab-pane>--> </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> @@ -313,7 +329,7 @@ bindYzSfcFlag, checkCarCode, checkYzSfcCode, findBytrolleyYardGetOne, - listProductionOrde, mozuReceivingWorkOrders, + listProductionOrde, listProductionOrdeLoopLine, mozuReceivingWorkOrders, receivingWorkOrders, trolleyYardBinDing } from "@/api/main/om/productionOrde/productionOrde"; @@ -326,11 +342,18 @@ replaceAssemblyCode, checkRecordDataDone, } from "@/api/main/da/paramCollection/paramCollection"; import {addFormula} from "@/api/main/bs/formula/formula"; +import QRCode from "qrcodejs2"; +import VueQr from "vue-qr"; export default { + components: { + VueQr + }, name: "stationTerminal", data() { return { + text: 'P9900200461#T2408170000004#V993983#SSW001.001#HHW001.001#NMCU', + materialCode: '', // 鐗╂枡缂栫爜 carCode: '', showInput: false, onLineBinDing: false, @@ -368,6 +391,7 @@ pageNum: 1, pageSize: 10, sfcCode: null, + productNum: '', }, // 鏌ヨ鍙傛暟 StationConfQueryParams: { @@ -384,69 +408,26 @@ release: 0 //鍏佽鏀捐 }, content: '', - activeName: 'first', - // url: "ws://10.103.210.248:8080/websocket/message/", - url: "ws://192.168.10.100:8080/websocket/message/", - message: "", - text_content: "", - ws: null, - inputValue: '9', - - open1: false, - input: "", - keepReading: true, - form1: { - baudRate: "115200", - dataBits: "8", - stopBits: "1", - parity: "none", - flowControl: "none", - desc: "", - type: "1", - isShowHistory: false, - }, - btnType: "primary", - btnText: "杩炴帴涓插彛", - restaurants: [], - portsList: [], - isShowSendArea: false, - readType: 1, - title: "", + // url: "ws://10.103.214.26:8080/websocket/message/", + url: "ws://192.168.20.250:8080/websocket/message/", passingStationForm: {}, originalArray: [], - yzSfcFlag: 1, - endYz: false, - orderFlag: true + orderFlag: true, + printFlag: false, + activeName: 'first', + printMaterialCode : '', + } + }, + mounted() { + this.setFocus() }, 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() { @@ -454,64 +435,62 @@ }, }, methods: { - getWorkOrders(){ - if(this.headContent.sfcCode === '' || this.headContent.sfcCode === null){ - //鎺ユ敹宸ュ崟 - const param = { - lineCode: this.headContent.processesCode - } - mozuReceivingWorkOrders(param).then(response => { - this.headContent.sfcCode = response.msg; - this.queryParams.productNum = response.msg; - this.getList() - this.cakeLamp.scanFinish = 1 - this.cakeLamp.startWork = 1 - this.cakeLamp.InPlace = 1 - }); - }else { - this.$message.error("宸茬粡鏈夊伐鍗曚簡锛屼笉鑳芥帴鏀讹紒"); - } + setFocus(){ + this.$nextTick(()=>{ + this.$refs.inputData.focus() + }) }, - bindcardCode(scanValue){ - // this.$message('缁戝畾鎴愬姛锛�'); - let param = { - productNum: this.headContent.sfcCode, - trolleyYard: scanValue, - } - trolleyYardBinDing(param).then(response => { - }); + changeMenu(tab, event) { + console.log(tab, event); + }, + handleEnter() { + console.log("鐗╂枡鐮�:"+this.materialCode); + if(this.materialCode.includes("9900200461") || this.materialCode.includes("9900207783")){ + if(this.headContent.processesCode === "OP170" || this.headContent.processesCode === "OP180" || + this.headContent.processesCode === "OP190" || this.headContent.processesCode === "OP200" || + this.headContent.processesCode === "OP210" || this.headContent.processesCode === "OP220" || + this.headContent.processesCode === "OP230" + ){ + if(this.materialCode.length>25){ + let code = this.materialCode.substring(13,26); + // this.headContent.sfcCode = code; + this.queryParams.productNum = code; + this.getList(); + this.cakeLamp.scanFinish = 1 + this.cakeLamp.startWork = 1 + this.cakeLamp.InPlace = 1 + const param = { + processesCode: this.headContent.processesCode, + productCode: this.workpieceInformation.productCode, + sfcBarcode:code, + } + fistSetpNumber(param).then(response => { + console.log("fistSetpNumber------"+response.msg) + }); + this.$message("鎵弿鐗╂枡缂栫爜"+this.materialCode); + this.materialCode=""; + this.setFocus(); + }else{ + this.$message("鎵弿鐗╂枡缂栫爜閿欒锛�"+this.materialCode); + this.materialCode=""; + this.setFocus(); + } + } + }else{ + if(this.headContent.sfcCode === '' || this.headContent.sfcCode === null){ + this.$message("璇峰厛鎵弿浜у搧鏉$爜锛�"); + }else{ + this.serialPortMethod(this.materialCode); + this.$message("鎵弿鐗╂枡缂栫爜"+this.materialCode); + this.setFocus(); + this.materialCode=""; + } + + } }, serialLink() { this.open1 = true - }, - bindYzSfc(){ - if(this.headContent.sfcCode!==""&&this.headContent.yzSfcCode!==""){ - let param = { - sfcCode: this.headContent.sfcCode, - locationCode: this.headContent.processesCode, - yzSfcCode: this.headContent.yzSfcCode - } - const orderParam = { - productNum: this.headContent.sfcCode, - } - replaceAssemblyCode(param).then(response => { - this.$message('缁戝畾鎴愬姛锛�'); - bindYzSfcFlag(orderParam).then(response => { - this.yzSfcFlag = 1 - }); - }); - } - }, - Release(){ - // this.$message('portsList锛�'+this.portsList.length); - if(this.btnType === "danger"){ - this.$message('杩炴帴浜嗭紒'); - - }else { - this.$message('mei杩炴帴浜嗭紒'); - - } }, serialPortMethod(value){ let formulaChildParams = { @@ -585,9 +564,7 @@ this.headContent.sfcCode = ''; this.headContent.yzSfcCode = ''; this.headContent.cardCode = ''; - }, - changeMenu(tab, event) { - console.log(tab, event); + this.workpieceInformation.planQty = '' }, clearClick(){ const param = { @@ -596,34 +573,48 @@ locationCode: this.headContent.processesCode, productBarcode: this.headContent.sfcCode, } - this.endClear() + // this.endClear() clearWorkpieceRelease(param).then(response => {}); - this.headContent.sfcCode = '' + // this.headContent.sfcCode = '' this.$message('娓呴櫎鎴愬姛锛�'); - }, - scanCompleted(){ - this.$message('鎵爜瀹屾垚'+this.content); - this.headContent.sfcCode = this.content - this.queryParams.sfcCode = this.content + this.setFocus(); this.getList() - this.getListFormulaChild() - this.cakeLamp.scanFinish = 1 - this.cakeLamp.startWork = 1 }, /** 鏌ヨ宸ュ崟鍒楄〃 */ async getList() { - await listProductionOrde(this.queryParams).then(response => { + await listProductionOrdeLoopLine(this.queryParams).then(response => { + console.log('杩涘叆鍒濆鍖栧姞杞絣ist鏂规硶') let rowsData = response.rows[0]; - console.log(rowsData) - this.workpieceInformation.workOrderNo = rowsData.workOrderNo; - this.workpieceInformation.productCode = rowsData.productCode; - this.workpieceInformation.materialCode = rowsData.materialCode; - this.workpieceInformation.planQty = rowsData.planQty; - this.headContent.cardCode = rowsData.trolleyYard; + if(rowsData){ + console.log('杩涘叆鍒濆鍖栧姞杞絣ist鏂规硶'+response.rows[0]) + if(this.headContent.processesCode === 'OP170' + ||this.headContent.processesCode === 'OP180'|| + this.headContent.processesCode === 'OP190'|| + this.headContent.processesCode === 'OP200'|| + this.headContent.processesCode === 'OP210'|| + this.headContent.processesCode === 'OP220'|| + this.headContent.processesCode === 'OP230' + ){ + this.headContent.sfcCode = rowsData.productNum + } + this.workpieceInformation.workOrderNo = rowsData.workOrderNo; + this.workpieceInformation.productCode = rowsData.productCode; + this.workpieceInformation.materialCode = rowsData.materialCode; + this.workpieceInformation.planQty = rowsData.planQty; + this.headContent.cardCode = rowsData.trolleyYard; + this.getListFormulaChild() + this.workpieceInformation.inboundTime = this.getCurrentTime() + this.printMaterialCode = rowsData.productCode + console.log(rowsData.productCode) + console.log(this.printMaterialCode) + this.text = 'P'+this.printMaterialCode+'#T'+this.headContent.sfcCode+'#V993983#SSW001.001#HHW001.001#NMCU' + console.log(this.text) + + }else { + this.$message.error('绯荤粺娌℃湁姝ゅ伐鍗曪紝璇烽噸鏂版壂鐮侊紒'); + } }); - this.getListFormulaChild() - this.workpieceInformation.inboundTime = this.getCurrentTime() }, initializedData(){ @@ -632,12 +623,18 @@ } initializedData(param).then(response => { if(response.msg !== ''){ - this.headContent.sfcCode = response.msg; - this.queryParams.productNum = response.msg; + if(this.headContent.processesCode === 'OP165'){ + this.headContent.sfcCode = response.msg.substring(13,26) + this.queryParams.productNum = response.msg.substring(13,26); + }else { + this.headContent.sfcCode = response.msg; + this.queryParams.productNum = response.msg; + } this.getList() this.cakeLamp.scanFinish = 1 this.cakeLamp.startWork = 1 this.cakeLamp.InPlace = 1 + // this.text = 'P9900200461#T'+this.headContent.sfcCode+'#V993983#SSW001.001#HHW001.001#NMCU' } }); }, @@ -655,30 +652,38 @@ padTimeUnit(value) { return value.toString().padStart(2, '0'); }, - addBaseData(){ - addBasicParameters(this.passingStationForm).then(response => {}); - }, - /** 鍏ョ珯澧炲姞杩囩珯閲囬泦璁板綍 **/ - addOverStationCollection(){ - this.passingStationForm = { - id: null, - workOrderNo: this.workpieceInformation.workOrderNo, - productCode: this.workpieceInformation.productCode, - locationCode: this.headContent.processesCode, - model: this.workpieceInformation.productModel, - productBarcode: this.headContent.sfcCode, - sfcCode: this.headContent.sfcCode, - inboundTime: new Date() - } - addPassingStationCollection(this.passingStationForm).then(response => {}); - // addBasicParameters(this.passingStationForm).then(response => {}); - }, exit() { if (this.ws) { this.ws.close(); this.ws = null; } + }, + test1(){ + document.getElementById('canvasWrapper1').innerHTML = ''; + this.$nextTick(() => { + let qrCode = new QRCode('canvasWrapper1',{ + width: 83, + height: 83, + text: 'P9900200461#T'+this.headContent.sfcCode+'#V993983#SSW001.001#HHW001.001#NMCU', + colorDark: '#000', + colorLight: '#fff' + }) + } + ) + }, + test2(){ + document.getElementById('canvasWrapper2').innerHTML = ''; + this.$nextTick(() => { + let qrCode = new QRCode('canvasWrapper2',{ + width: 83, + height: 83, + text: 'P9900200461#T'+this.headContent.sfcCode+'#V993983#SSW001.001#HHW001.001#NMCU', + colorDark: '#000', + colorLight: '#fff' + }) + } + ) }, send() { if (this.ws) { @@ -702,30 +707,33 @@ this.headContent.processesName = rows.processesName this.headContent.processesCode = rows.processesCode this.initializedData() + if(this.headContent.processesCode === 'OP165'){ + this.printFlag = true + } + + if(this.headContent.processesCode === 'OP250'){ + this.printFlag = true + } }); - 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杩炴帴鎴愬姛锛�'); }; //socket浠庡悗鍙板悜鍓嶅彴鎺ㄩ�佹暟鎹� this.ws.onmessage = function (event) { - if (event.data === "IN") { + if (event.data === "print") { + document.getElementById('print').click(); + unfinishedProcess({processesCode: self.headContent.processesCode,recordDataDone: 21}).then(response => {}); + }else if (event.data === "IN") { self.cakeLamp.InPlace = 1; - console.log(self.headContent.processesCode); - // const param = { - // processesCode: self.headContent.processesCode, - // } - // fistSetpNumber(param).then(response => {}); - } else if (event.data === "IN0") { - self.cakeLamp.InPlace = 0; + }else if(event.data === "twoHundredAndThirtyEND"){ + self.endClear() } else if (event.data === "OUT") { self.cakeLamp.release = 1; } else if (event.data === "END") { @@ -761,7 +769,37 @@ console.log("杩涘叆鏈�缁堟柟娉�") self.endSaveData(param) - } else if (event.data.includes("[")) { + } else if(event.data.includes("productNum")){//浜у搧搴忓垪鍙� + let productNum = event.data.split(',')[1]; + if(self.headContent.processesCode === 'OP165'){ + console.log("杩涘幓鎴彇鎬绘垚鐮佹柟娉�165宸ョ珯鍘熷鍊兼槸"+productNum+"鎴彇涔嬪悗鐨勬槸"+productNum.substring(13,26)) + self.headContent.sfcCode = productNum.substring(13,26) + console.log("self.headContent.sfcCode"+self.headContent.sfcCode) + }else { + self.headContent.sfcCode = productNum; + } + self.queryParams.productNum = productNum; + self.getList() + self.cakeLamp.scanFinish = 1 + self.cakeLamp.startWork = 1 + self.cakeLamp.InPlace = 1 + + const param = { + processesCode: self.headContent.processesCode, + productCode: self.workpieceInformation.productCode + } + fistSetpNumber(param).then(response => { + console.log("fistSetpNumber------"+response.msg) + }); + + //鎵撳嵃 + if(self.headContent.processesCode === "OP165"){ + // self.test1() + // self.test2() + self.text = 'P9900200461#T'+self.headContent.sfcCode+'#V993983#SSW002.005#HHW001.001#NMCU#' + } + + }else if (event.data.includes("[")) {//鎷х揣 let formulaChilds = ""; self.formulaChildList.sort((a, b) => a.stepSort - b.stepSort); self.formulaChildList @@ -775,10 +813,10 @@ break; } } - if(formulaChilds === ""){ - self.$message.error('鏈伐浣嶅凡宸ヤ綔瀹屾垚锛�'); - return; - } + if(formulaChilds === ""){ + self.$message.error('鏈伐浣嶅凡宸ヤ綔瀹屾垚锛�'); + return; + } const param = { id: formulaChilds.id, tightenTheArray: event.data, @@ -791,12 +829,15 @@ spareField2: formulaChilds.spareField2, spareField3: formulaChilds.spareField3, spareField4: formulaChilds.spareField4, - stepSort: formulaChilds.stepSort + stepSort: formulaChilds.stepSort, + ngTimes: formulaChilds.ngTimes, } if(formulaChilds.paramCode === null||formulaChilds.paramCode ===''){ self.$message('鏈壘鍒板弬鏁扮爜锛岃妫�鏌ュ弬鏁扮爜鏄惁姝g‘'); return; } + self.formulaChildParams.artificialNgFlag = null + console.log("self.formulaChildParams.artificialNgFlag"+self.formulaChildParams.artificialNgFlag) if(self.headContent.sfcCode!==null||self.headContent.sfcCode!==''){ updateTighteningFormula(param).then(response => { //addTighteningParameters(param).then(response => {}); @@ -805,15 +846,6 @@ self.getListFormulaChild() }); } - }else if(event.data.includes("productNum")){ - let productNum = event.data.split(',')[1]; - self.headContent.sfcCode = productNum; - self.queryParams.productNum = productNum; - self.getList() - self.cakeLamp.scanFinish = 1 - self.cakeLamp.startWork = 1 - self.cakeLamp.InPlace = 1 - } }; }, @@ -825,263 +857,20 @@ workpieceRelease(param).then(response => {}); }); }, - - //鎺ュ彈鏁版嵁鐨勫洖璋� - callBack(value) { - if (this.form1.isShowHistory) this.form1.desc = this.readLi().join(""); - else { - const scanValue = this.myserialport.hex2atostr(value).replace(/[\r\n]/g, ''); - console.log("涓插彛鏀跺埌鏁版嵁-------------------"+scanValue) - console.log("sfc=--"+this.headContent.sfcCode+"--") - if(this.headContent.sfcCode !== '' && this.headContent.sfcCode !== null - && this.headContent.sfcCode !== undefined){ - if(scanValue.includes("0RSP1TE") && this.headContent.processesCode === 'OP240'){ - this.headContent.cardCode = scanValue - this.bindcardCode(scanValue); - this.serialPortMethod(scanValue) - }else { - this.$message('宸ヤ綅缁堢鎵弿鐗╂枡缂栫爜'+scanValue); - console.log(scanValue) - this.serialPortMethod(scanValue) - } - } else { - // if(this.headContent.processesCode === 'OP240'){ - this.headContent.sfcCode = scanValue; - this.queryParams.productNum = scanValue; - this.getList() - this.cakeLamp.scanFinish = 1 - this.cakeLamp.startWork = 1 - this.cakeLamp.InPlace = 1 - // }else { - // let param = { - // trolleyYard: scanValue - // } - // findBytrolleyYardGetOne(param).then(response => { - // if(response.msg !== '2'){ - // this.headContent.sfcCode = response.msg; - // this.queryParams.productNum = response.msg; - // this.$message('鎵爜璇嗗埆浜у搧搴忓垪鍙�'+scanValue); - // this.getList() - // this.cakeLamp.scanFinish = 1 - // this.cakeLamp.startWork = 1 - // this.cakeLamp.InPlace = 1 - // }else { - // this.$message('娌℃湁搴忓垪鍙�'+scanValue); - // return - // } - // }); - // } - - } - - } - }, - 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" }, - ]; - }, } } </script> <style scoped> +.div1, .div2 { + flex: 1; /* 涓や釜div骞冲垎瀹瑰櫒瀹藉害 */ +} +.span{ + font-family: 'Microsoft YaHei', sans-serif; +} +.div2{ + margin-left: 30px; +} .bottom-card{ height: 600px; } -- Gitblit v1.9.3