<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="materialCode" @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-item label="开始时间">
|
<span>{{workpieceInformation.inboundTime}}</span>
|
</el-descriptions-item>
|
</el-descriptions>
|
<el-divider></el-divider>
|
<el-row>
|
<el-col :span="12">
|
<el-button class="circle-button" :class="cakeLamp.plcState ? 'circle-green-animate':'circle-red'" circle></el-button>
|
<span style="display: none">{{cakeLamp.plcState}}</span>
|
<span> PLC状态</span>
|
</el-col>
|
<el-col :span="12">
|
<el-button class="circle-button" :class="cakeLamp.scannerState ? 'circle-green-animate':'circle-red'" circle></el-button>
|
<span style="display: none">{{cakeLamp.scannerState}}</span>
|
<span> 扫码枪状态</span>
|
</el-col>
|
</el-row>
|
<el-row style="margin-top: 20px">
|
<el-col :span="12">
|
<el-button class="circle-button" :class="cakeLamp.InPlace ? 'circle-green':'circle-red'" circle></el-button>
|
<span style="display: none">{{cakeLamp.InPlace}}</span>
|
<span> 工件到位</span>
|
</el-col>
|
<el-col :span="12">
|
<el-button class="circle-button" :class="cakeLamp.scanFinish ? 'circle-green':'circle-red'" circle></el-button>
|
<span style="display: none">{{cakeLamp.scanFinish}}</span>
|
<span> 扫码完成</span>
|
</el-col>
|
</el-row>
|
<el-row style="margin-top: 20px">
|
<el-col :span="12">
|
<el-button class="circle-button" :class="cakeLamp.startWork ? 'circle-green':'circle-red'" circle></el-button>
|
<span style="display: none">{{cakeLamp.startWork}}</span>
|
<span> 开始作业</span>
|
</el-col>
|
<el-col :span="12">
|
<el-button class="circle-button" :class="cakeLamp.release ? 'circle-green':'circle-red'" circle></el-button>
|
<span style="display: none">{{cakeLamp.release}}</span>
|
<span> 允许放行</span>
|
</el-col>
|
</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 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: 37px">
|
<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 {
|
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: false,
|
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() {
|
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.substring(35,56).includes("SSW001.001#HHW001.001")){
|
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 {
|
this.$message("版本号校验错误,请检查!"+this.materialCode);
|
}
|
}
|
}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
|
},
|
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])
|
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('系统没有此工单,请重新扫码!');
|
}
|
});
|
},
|
|
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#SSW001.001#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>
|