¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-row :gutter="5"> |
| | | <el-col :span="7"> |
| | | <el-card style="height: 71px;padding-top: 6px" shadow="never"> |
| | | <span class="head-font">å·¥ä½ç¼å· : {{headContent.processesCode}}</span> |
| | | </el-card> |
| | | </el-col> |
| | | <el-col :span="17"> |
| | | <el-card shadow="never"> |
| | | <span class="head-font">产ååºåå· : </span> |
| | | <el-input style="width: 50%" ref="inputData" v-model="productNum" @change="handleEnter" placeholder="è¯·æ«æç©æç¼ç "></el-input> |
| | | <el-button @click="clearClick" style="float: right" type="danger" >æ¸
é¤</el-button> |
| | | </el-card> |
| | | </el-col> |
| | | |
| | | </el-row> |
| | | <el-row :gutter="5" style="margin-top: 5px"> |
| | | <el-col :span="7" > |
| | | <el-card class="bottom-card"> |
| | | <div slot="header" class="clearfix"> |
| | | <i class="el-icon-tickets"></i> |
| | | <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.productCode}}</span> |
| | | </el-descriptions-item> |
| | | <el-descriptions-item label="è®¡åæ°é"> |
| | | <span>{{workpieceInformation.planQty}}</span> |
| | | </el-descriptions-item> |
| | | </el-descriptions> |
| | | <el-divider></el-divider> |
| | | <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 style="vertical-align: -0.5px;">3</span><br> |
| | | </div> |
| | | <div style="margin-top: 4px"> |
| | | <span>é¶ä»¶å·ï¼</span><span>{{printMaterialCode}}</span><br> |
| | | </div> |
| | | </div> |
| | | |
| | | <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 style="vertical-align: -0.5px;">I</span><span>P67</span><br> |
| | | </div> |
| | | <div style="margin-top: 4px"> |
| | | <span>å³°å¼å·¥ä½çµæµï¼</span><span>230A</span><br> |
| | | </div> |
| | | <div style="margin-top: 4px"> |
| | | <span>ç»ç¼ç级ï¼</span><span style="vertical-align: -0.5px;">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"> |
| | | <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="80" align="center" prop="stepSort"> |
| | | </el-table-column> |
| | | <el-table-column label="æä½å
容" align="center" prop="operationSteps"> |
| | | </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"> |
| | | </el-table-column> |
| | | <el-table-column label="ééå¼" align="center" prop="collectData"> |
| | | </el-table-column> |
| | | <el-table-column label="ç»æ" width="60" align="center" prop="results"> |
| | | </el-table-column> |
| | | |
| | | </el-table> |
| | | </el-col> |
| | | </el-tab-pane> |
| | | </el-tabs> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | </template> |
| | | <script> |
| | | import {listWorkReport} from "@/api/main/om/workReport/workReport"; |
| | | import {listStationConf,getIpv4} from "@/api/main/sc/stationConf"; |
| | | import { |
| | | clearWorkpieceRelease, |
| | | fistSetpNumber, initializedData, |
| | | listFormulaChild, |
| | | noPageListFormulaChild, |
| | | releaseCheck, unfinishedProcess, |
| | | updateResults, |
| | | updateTighteningFormula, |
| | | workpieceRelease |
| | | } from "@/api/main/bs/formulaChild/formulaChild"; |
| | | import MySerialPort from "@/utils/MySerialPort"; |
| | | import USBDevice from "@/utils/usb.json"; |
| | | import { |
| | | bindYzSfcFlag, |
| | | checkCarCode, checkYzSfcCode, |
| | | findBytrolleyYardGetOne, |
| | | listProductionOrde, listProductionOrdeLoopLine, mozuReceivingWorkOrders, |
| | | receivingWorkOrders, |
| | | trolleyYardBinDing |
| | | } from "@/api/main/om/productionOrde/productionOrde"; |
| | | import {addPassingStationCollection} from "@/api/main/da/passingStationCollection/passingStationCollection"; |
| | | import { |
| | | addBasicParameters, |
| | | addParamCollection, |
| | | addTighteningParameters, |
| | | saveCampaignTimeParameters, |
| | | 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 { |
| | | productNum: '', |
| | | text: 'P9900200461#T2408170000004#V993983#SSW001.001#HHW001.001#NMCU', |
| | | materialCode: '', // ç©æç¼ç |
| | | carCode: '', |
| | | showInput: false, |
| | | onLineBinDing: false, |
| | | |
| | | serialPortContent: '', |
| | | // æ¥è¯¢åæ° |
| | | formulaChildParams: { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | productCode: null, |
| | | processesCode: null, |
| | | }, |
| | | // é
æ¹é
ç½®åä¿¡æ¯è¡¨æ ¼æ°æ® |
| | | formulaChildList: [], |
| | | ipAddress: '', |
| | | imgSrc: '', |
| | | headContent: { |
| | | processesCode: 'OP1010', |
| | | processesName: 'è´´æ æº-è´´ç ', |
| | | sfcCode: '', |
| | | yzSfcCode: '', |
| | | cardCode: '', |
| | | }, |
| | | workpieceInformation: { |
| | | workOrderNo: null, |
| | | productCode: null, |
| | | productModel: null, |
| | | productName: null, |
| | | inboundTime: null, |
| | | materialCode: null, |
| | | planQty: null, |
| | | }, |
| | | // æ¥è¯¢åæ° |
| | | queryParams: { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | sfcCode: null, |
| | | productNum: '', |
| | | }, |
| | | // æ¥è¯¢åæ° |
| | | StationConfQueryParams: { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | ipAddress: null, |
| | | }, |
| | | cakeLamp: { |
| | | plcState: 1, //plc |
| | | scannerState: 1, //æ«ç æª |
| | | InPlace: 0, //工件å°ä½ |
| | | scanFinish: 0, |
| | | startWork: 0, |
| | | release: 0 //å
许æ¾è¡ |
| | | }, |
| | | content: '', |
| | | // url: "ws://10.103.214.26:8080/websocket/message/", |
| | | url: "ws://192.168.20.250:8080/websocket/message/", |
| | | |
| | | passingStationForm: {}, |
| | | originalArray: [], |
| | | orderFlag: true, |
| | | printFlag: true, |
| | | activeName: 'first', |
| | | printMaterialCode : '', |
| | | |
| | | } |
| | | }, |
| | | mounted() { |
| | | this.setFocus() |
| | | }, |
| | | beforeDestroy() { |
| | | this.exit(); |
| | | }, |
| | | created() { |
| | | // this.initStation(); |
| | | }, |
| | | computed: { |
| | | isDisable() { |
| | | return this.btnType === "danger"; |
| | | }, |
| | | }, |
| | | methods: { |
| | | setFocus(){ |
| | | this.$nextTick(()=>{ |
| | | this.$refs.inputData.focus() |
| | | }) |
| | | }, |
| | | changeMenu(tab, event) { |
| | | console.log(tab, event); |
| | | }, |
| | | handleEnter() { |
| | | let code = this.productNum.substring(13,26); |
| | | this.queryParams.productNum = this.productNum; |
| | | this.getList(); |
| | | }, |
| | | serialLink() { |
| | | this.open1 = true |
| | | }, |
| | | serialPortMethod(value){ |
| | | let formulaChildParams = { |
| | | scanBarcode: value, |
| | | sfcBarcode: this.headContent.sfcCode, |
| | | workOrderNo: this.workpieceInformation.workOrderNo, |
| | | productCode: this.workpieceInformation.productCode, |
| | | locationCode: this.headContent.processesCode, |
| | | collectionTime: new Date() |
| | | } |
| | | updateResults(formulaChildParams).then(response => { |
| | | console.log(response) |
| | | if(response.msg === "3"){ |
| | | this.cakeLamp.release= 1 //å
许æ¾è¡ |
| | | }else if(response.msg === "2"){ |
| | | this.$message.error('æ«ç éå¤è¯·éæ°æ«ç ï¼'); |
| | | } |
| | | this.getListFormulaChild() |
| | | }); |
| | | }, |
| | | rowStyle({ row }) { |
| | | if (row.results === 'OK') { |
| | | return 'background-color: PaleGreen'; |
| | | } else if (row.results === 'NG') { |
| | | return 'background-color: LightSalmon'; |
| | | } |
| | | return ''; |
| | | }, |
| | | /** æ¥è¯¢é
æ¹é
ç½®åä¿¡æ¯å表 */ |
| | | getListFormulaChild() { |
| | | // this.formulaChildList = [] |
| | | this.formulaChildParams.productCode = this.workpieceInformation.productCode |
| | | this.formulaChildParams.processesCode = this.headContent.processesCode |
| | | console.log(this.formulaChildParams) |
| | | noPageListFormulaChild(this.formulaChildParams).then(response => { |
| | | this.formulaChildList = response.rows; |
| | | if (this.formulaChildList.length >0){ |
| | | let pos = 0 |
| | | const tempArr = this.formulaChildList.filter(x=> 'OK' === x.results) |
| | | if (tempArr.length>0){ |
| | | pos = tempArr.length |
| | | this.$nextTick(() => { |
| | | let temp33 = document.getElementsByClassName('el-table__row') |
| | | console.log('temp33',temp33) |
| | | console.log('len',temp33.item(pos)) |
| | | if (temp33.length > 0){ |
| | | console.log('1111111111111111') |
| | | let arr = temp33[pos-1] |
| | | console.log('srr',arr) |
| | | arr.scrollIntoView({ block: 'center' }) |
| | | } |
| | | }) |
| | | } |
| | | |
| | | } |
| | | |
| | | }); |
| | | }, |
| | | endClear(){ |
| | | this.cakeLamp.InPlace= 0 //工件å°ä½ |
| | | this.cakeLamp.scanFinish= 0 |
| | | this.cakeLamp.startWork= 0 |
| | | this.cakeLamp.release= 0 //å
许æ¾è¡ |
| | | |
| | | this.formulaChildList = [] |
| | | this.workpieceInformation.productCode = null; |
| | | this.workpieceInformation.workOrderNo = null; |
| | | this.workpieceInformation.productModel = null; |
| | | this.workpieceInformation.productName = null; |
| | | this.workpieceInformation.inboundTime = null; |
| | | this.headContent.sfcCode = ''; |
| | | this.headContent.yzSfcCode = ''; |
| | | this.headContent.cardCode = ''; |
| | | this.workpieceInformation.planQty = '' |
| | | }, |
| | | clearClick(){ |
| | | const param = { |
| | | workOrderNo: this.workpieceInformation.workOrderNo, |
| | | productCode: this.workpieceInformation.productCode, |
| | | locationCode: this.headContent.processesCode, |
| | | productBarcode: this.headContent.sfcCode, |
| | | } |
| | | // this.endClear() |
| | | clearWorkpieceRelease(param).then(response => {}); |
| | | // this.headContent.sfcCode = '' |
| | | this.$message('æ¸
餿åï¼'); |
| | | this.setFocus(); |
| | | this.getList() |
| | | |
| | | }, |
| | | /** æ¥è¯¢å·¥åå表 */ |
| | | async getList() { |
| | | await listProductionOrdeLoopLine(this.queryParams).then(response => { |
| | | console.log('è¿å
¥åå§åå è½½listæ¹æ³') |
| | | let rowsData = response.rows[0]; |
| | | if(rowsData){ |
| | | console.log('è¿å
¥åå§åå è½½listæ¹æ³'+response.rows[0]) |
| | | this.headContent.sfcCode = rowsData.productNum.substring(13,26) |
| | | this.workpieceInformation.workOrderNo = rowsData.workOrderNo; |
| | | this.workpieceInformation.productCode = rowsData.productCode; |
| | | this.workpieceInformation.materialCode = rowsData.materialCode; |
| | | this.workpieceInformation.planQty = rowsData.planQty; |
| | | this.printMaterialCode = rowsData.productCode |
| | | this.text = 'P'+this.printMaterialCode+'#T'+this.headContent.sfcCode+'#V993983#SSW001.001#HHW001.001#NMCU' |
| | | }else { |
| | | this.$message.error('ç³»ç»æ²¡ææ¤å·¥åï¼è¯·éæ°æ«ç ï¼'); |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | initializedData(){ |
| | | const param = { |
| | | locationCode: this.headContent.processesCode, |
| | | } |
| | | initializedData(param).then(response => { |
| | | if(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' |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | getCurrentTime() { |
| | | const now = new Date(); |
| | | const year = now.getFullYear(); |
| | | const month = this.padTimeUnit(now.getMonth() + 1); // æä»½æ¯ä»0å¼å§ç |
| | | const day = this.padTimeUnit(now.getDate()); |
| | | const hours = this.padTimeUnit(now.getHours()); |
| | | const minutes = this.padTimeUnit(now.getMinutes()); |
| | | const seconds = this.padTimeUnit(now.getSeconds()); |
| | | return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`; |
| | | }, |
| | | padTimeUnit(value) { |
| | | return value.toString().padStart(2, '0'); |
| | | }, |
| | | |
| | | 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) { |
| | | this.ws.send(this.message); |
| | | } else { |
| | | alert("æªè¿æ¥å°æå¡å¨"); |
| | | } |
| | | }, |
| | | |
| | | initStation: async function () { |
| | | await getIpv4().then(response => { |
| | | this.StationConfQueryParams.ipAddress = response.msg |
| | | console.log('æ¥è¯¢å°æ¬å·¥ä½IP为' + this.StationConfQueryParams.ipAddress) |
| | | }); |
| | | 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 |
| | | this.initializedData() |
| | | if(this.headContent.processesCode === 'OP165'){ |
| | | this.printFlag = true |
| | | } |
| | | |
| | | if(this.headContent.processesCode === 'OP250'){ |
| | | this.printFlag = true |
| | | } |
| | | |
| | | }); |
| | | 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.$message('websocketè¿æ¥æåï¼'); |
| | | }; |
| | | |
| | | |
| | | //socketä»åå°ååå°æ¨éæ°æ® |
| | | this.ws.onmessage = function (event) { |
| | | 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; |
| | | }else if(event.data === "twoHundredAndThirtyEND"){ |
| | | self.endClear() |
| | | } else if (event.data === "OUT") { |
| | | self.cakeLamp.release = 1; |
| | | } else if (event.data === "END") { |
| | | |
| | | const formulaChildIndex = self.formulaChildList.length-1 |
| | | |
| | | const orderParam = { |
| | | productNum: self.headContent.sfcCode, |
| | | } |
| | | |
| | | if(self.headContent.sfcCode=== ''||self.headContent.sfcCode=== null){ |
| | | self.$message('æ»æç 为空ï¼è¯·æ«ç ï¼') |
| | | unfinishedProcess({processesCode: self.headContent.processesCode,recordDataDone: 26}).then(response => {}); |
| | | return; |
| | | } |
| | | |
| | | if(self.formulaChildList[formulaChildIndex].results !== 'OK'){ |
| | | self.$message('æªåå®å·¥åºç¦æ¢æ¾è¡'); |
| | | unfinishedProcess({processesCode: self.headContent.processesCode,recordDataDone: 25}).then(response => {}); |
| | | return; |
| | | } |
| | | |
| | | |
| | | const param = { |
| | | workOrderNo: self.workpieceInformation.workOrderNo, |
| | | productCode: self.workpieceInformation.productCode, |
| | | locationCode: self.headContent.processesCode, |
| | | productBarcode: self.headContent.sfcCode, |
| | | inboundTime: self.workpieceInformation.inboundTime, |
| | | formulaChildEntity: self.formulaChildList[formulaChildIndex] |
| | | } |
| | | |
| | | console.log("è¿å
¥æç»æ¹æ³") |
| | | self.endSaveData(param) |
| | | |
| | | } 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 |
| | | .filter((formulaChild) => formulaChild.operationType === '1'); |
| | | for (let i = 0; i < self.formulaChildList.length; i++) { |
| | | let formulaChild = self.formulaChildList[i]; |
| | | let results = formulaChild.results; |
| | | |
| | | if (results === '' || results === null || results === 'NG') { |
| | | formulaChilds = formulaChild; |
| | | break; |
| | | } |
| | | } |
| | | if(formulaChilds === ""){ |
| | | self.$message.error('æ¬å·¥ä½å·²å·¥ä½å®æï¼'); |
| | | return; |
| | | } |
| | | const param = { |
| | | id: formulaChilds.id, |
| | | tightenTheArray: event.data, |
| | | paramCode: formulaChilds.paramCode, |
| | | workOrderNo: self.workpieceInformation.workOrderNo, |
| | | productCode: self.workpieceInformation.productCode, |
| | | locationCode: self.headContent.processesCode, |
| | | productBarcode: self.headContent.sfcCode, |
| | | spareField1: formulaChilds.spareField1, |
| | | spareField2: formulaChilds.spareField2, |
| | | spareField3: formulaChilds.spareField3, |
| | | spareField4: formulaChilds.spareField4, |
| | | stepSort: formulaChilds.stepSort, |
| | | ngTimes: formulaChilds.ngTimes, |
| | | } |
| | | if(formulaChilds.paramCode === null||formulaChilds.paramCode ===''){ |
| | | self.$message('æªæ¾å°åæ°ç ï¼è¯·æ£æ¥åæ°ç æ¯å¦æ£ç¡®'); |
| | | 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 => {}); |
| | | self.getListFormulaChild() |
| | | }).catch(error =>{ |
| | | self.getListFormulaChild() |
| | | }); |
| | | } |
| | | } |
| | | }; |
| | | }, |
| | | |
| | | endSaveData(param){ |
| | | saveCampaignTimeParameters(param).then(response => { |
| | | this.cakeLamp.release = 1; |
| | | this.endClear() |
| | | workpieceRelease(param).then(response => {}); |
| | | }); |
| | | }, |
| | | } |
| | | } |
| | | |
| | | </script> |
| | | <style scoped> |
| | | .div1, .div2 { |
| | | flex: 1; /* 两个divå¹³å容å¨å®½åº¦ */ |
| | | } |
| | | .span{ |
| | | font-family: 'Microsoft YaHei', sans-serif; |
| | | } |
| | | .div2{ |
| | | margin-left: 30px; |
| | | } |
| | | .bottom-card{ |
| | | height: 600px; |
| | | } |
| | | .circle-button{ |
| | | height: 30px; |
| | | width: 30px; |
| | | } |
| | | .circle-red { |
| | | background-color: #e01a4f; |
| | | } |
| | | .circle-green { |
| | | background-color: green; |
| | | } |
| | | .circle-green-animate { |
| | | background-color: green; |
| | | animation: circle-green-animate 2s infinite; |
| | | } |
| | | @keyframes circle-green-animate { |
| | | 50% { |
| | | opacity: 0.6; |
| | | } |
| | | 0% { |
| | | opacity: 0.2; |
| | | } |
| | | } |
| | | .head-font{ |
| | | /*font-weight: bold;*/ |
| | | /*font-size: 25px;*/ |
| | | } |
| | | span{ |
| | | font-size: 15px; |
| | | } |
| | | .el-table .warning-row { |
| | | background: oldlace; |
| | | } |
| | | |
| | | .el-table .success-row { |
| | | background: #f0f9eb; |
| | | } |
| | | </style> |
| | | |