jcdm-main/src/main/java/com/jcdm/main/bs/formulaChild/controller/BsFormulaChildInfoController.java
@@ -53,6 +53,30 @@ private MiloService miloService; /** * è¿ä¿®ä¿¡æ¯åå ¥plc */ @GetMapping("/writeRepairInformationIntoPlc") public AjaxResult writeRepairInformationIntoPlc(BsFormulaChildInfo bsFormulaChildInfo) { String thoroughfare = Constants.thoroughfareMap.get(bsFormulaChildInfo.getProcessesCode());//è·åéé try { String prefix = thoroughfare+".OP165."; miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(prefix+"SNCode").value(bsFormulaChildInfo.getSfcCode()).build()); miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(prefix+"WorkOrderNumber").value(bsFormulaChildInfo.getWorkOrderNo()).build()); miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(prefix+"ProcessesCode").value(bsFormulaChildInfo.getProcessesCode()).build()); miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(prefix+"EngravingStatus").value(bsFormulaChildInfo.getEngravingStatus()).build()); } catch (Exception e) { throw new RuntimeException(e); } return AjaxResult.success(); } public static void main(String[] args) { String str = "TZ180XSDSZX012409120000001"; System.out.println(str.length()); } /** * æªåå®å·¥åºåå¤plcä¿¡å· */ @GetMapping("/unfinishedProcess") jcdm-main/src/main/java/com/jcdm/main/bs/formulaChild/domain/BsFormulaChildInfo.java
@@ -145,6 +145,12 @@ @TableField(exist = false) private String productBarcode; @TableField(exist = false) private String engravingStatus; @TableField(exist = false) private String sfcCode; public String getParamName() { return paramName; } jcdm-main/src/main/java/com/jcdm/main/bs/formulaChild/domain/PrintOfflineReportInfo.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,28 @@ package com.jcdm.main.bs.formulaChild.domain; import lombok.Data; @Data public class PrintOfflineReportInfo { private String inspectionDate; private String param18; private String param19; private String param20; private String param21; private String param22; private String param23; private String param24; private String param25; private String param26; private String param27; private String param28; private String param29; private String param30; private String param31; private String param32; private String param33; private String param34; private String param35; private String param36; private String param37; } jcdm-main/src/main/java/com/jcdm/main/da/paramCollection/controller/DaParamCollectionController.java
@@ -7,6 +7,7 @@ import com.jcdm.common.enums.BusinessType; import com.jcdm.common.utils.DateUtils; import com.jcdm.common.utils.poi.ExcelUtil; import com.jcdm.main.bs.formulaChild.domain.PrintOfflineReportInfo; import com.jcdm.main.da.paramCollection.domain.DaParamCollection; import com.jcdm.main.da.paramCollection.service.IDaParamCollectionService; import org.springframework.beans.factory.annotation.Autowired; @@ -14,7 +15,10 @@ import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; import java.time.LocalDate; import java.time.format.DateTimeFormatter; import java.util.List; import java.util.Map; /** * 设å¤äº§åè¿ç¨åæ°ééController @@ -32,6 +36,50 @@ /** * æ¥è¯¢è®¾å¤äº§åè¿ç¨åæ°ééå表 */ @GetMapping("/getPrintOfflineReportInfo") public AjaxResult getPrintOfflineReportInfo(DaParamCollection daParamCollection) { PrintOfflineReportInfo info = new PrintOfflineReportInfo(); info.setParam18("ï¼500"); info.setParam19("0.3%ï¼0%ï¼0.5%"); info.setParam20("ï¼600"); info.setParam21("ï¼700"); info.setParam22("0.22"); info.setParam23("362"); info.setParam24("8.18"); info.setParam25("0.1"); info.setParam26("21.53,42.33,42.19"); info.setParam27("49.20,49.34,49.15"); info.setParam28("0.061%ï¼0.163%ï¼0.223%"); info.setParam29("35.1,35.0,35.1"); info.setParam30("â"); info.setParam31("0.0041"); info.setParam32("3.06"); info.setParam33("o.48"); info.setParam34("4.7ï½A"); info.setParam35("562.1"); info.setParam36("-137.1"); info.setParam37("â"); info.setInspectionDate(getInspectionDate()); return AjaxResult.success(info); } public static String getInspectionDate(){ // è·åå½åæ¥æ LocalDate today = LocalDate.now(); // å®ä¹æ¥ææ ¼å¼ï¼å¹´.æ.æ¥ï¼ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy.M.d"); // æ ¼å¼åå½åæ¥æ return today.format(formatter); } public static void main(String[] args) { System.out.println(getInspectionDate()); } /** * æ¥è¯¢è®¾å¤äº§åè¿ç¨åæ°ééå表 */ @PreAuthorize("@ss.hasPermi('main:paramCollection:list')") @GetMapping("/list") public TableDataInfo list(DaParamCollection daParamCollection) jcdm-main/src/main/resources/mapper/om/productionOrde/OmProductionOrdeInfoMapper.xml
@@ -82,6 +82,8 @@ <if test="resultCode != null and resultCode != ''"> and result_code = #{resultCode}</if> <if test="sfResult != null and sfResult != ''"> and sf_result = #{sfResult}</if> <if test="onlineCompletionMark != null and sfResult != ''"> and online_completion_mark = #{onlineCompletionMark}</if> <if test="trolleyYard != null and trolleyYard != ''"> and trolley_yard = #{trolleyYard}</if> </where> ORDER BY stream_number DESC jcdm-ui/src/api/main/bs/formulaChild/formulaChild.js
@@ -46,6 +46,15 @@ }) } export function writeRepairInformationIntoPlc(query) { return request({ url: '/bs/formulaChild/writeRepairInformationIntoPlc', method: 'get', params: query }) } // æ¥è¯¢é æ¹é ç½®åä¿¡æ¯å表 export function initializedData(query) { return request({ jcdm-ui/src/api/main/da/paramCollection/paramCollection.js
@@ -9,6 +9,14 @@ }) } export function getPrintOfflineReportInfo(query) { return request({ url: '/main/paramCollection/getPrintOfflineReportInfo', method: 'get', params: query }) } // æ¥è¯¢è®¾å¤äº§åè¿ç¨åæ°ééè¯¦ç» export function getParamCollection(id) { return request({ jcdm-ui/src/views/components/offlineQualificationReport.vue
@@ -1,15 +1,16 @@ <template> <table class="yk-table" border="1px" cellspacing="0" align="center" width="900px" style="font-size: 11px;font-family: SimSun;word-wrap:break-word;word-break:break-all"> <table class="yk-table" border="1px" cellspacing="0" align="center" width="900px" style="font-size: 11px;font-family: SimSun;word-wrap:break-word;word-break:break-all;border-collapse: collapse;border-color: #000"> <tr> <td colspan="11"> <img style="width: 140px;height: 20px;" :src="require('@/assets/images/a8963a24920640508e96150a053fc41.png')"> <span style="text-decoration: underline;margin-left: 23%;font-size: 15px">æ¹å·æºè¯å¨åç³»ç»åå±æéå ¬å¸</span> <div style="border-bottom: #181818 1px solid;"></div> <td colspan="11" style="padding-top: 6px;"> <img style="width: 140px;height: 20px;margin-left: 15px;" :src="require('@/assets/images/a8963a24920640508e96150a053fc41.png')"> <span style="text-decoration: underline;margin-left: 23%;font-size: 15px;">æ¹å·æºè¯å¨åç³»ç»åå±æéå ¬å¸</span> <div style="border-bottom: 1px solid #181818;margin: 5px 10px 2px 6px;"></div> <div style="border-bottom: 1px solid #181818;margin: 0 10px 2px 6px;"></div> </td> </tr> <tr align="center"> <td colspan="11"> <span style="font-size: 15px">åºè´§æ£æ¥æ¥å</span> <td colspan="11" style="padding: 2px 0;"> <span style="font-size: 15px;font-weight: bold;">åºè´§æ£æ¥æ¥å</span> </td> </tr> <tr> @@ -17,7 +18,7 @@ <span>产åå称/é¶é¨ä»¶å·ï¼çµé©±å¨ç³»ç»æ»æ/9900200461</span> </td> <td colspan="4"> <span>æ£éªæ¥æï¼2024.9.4</span> <span>æ£éªæ¥æï¼{{printParam.inspectionDate}}</span> </td> <td colspan="4"> <span>追溯ç¼å·ï¼2409030000032</span> @@ -259,7 +260,7 @@ <td>A</td> <td>å®å综åæµè¯ä»ª</td> <td>å ¨æ£</td> <td>ï¼500</td> <td>{{printParam.param18}}</td> <td>OK</td> <td></td> <td></td> @@ -272,7 +273,7 @@ <td>A</td> <td>å®å综åæµè¯ä»ª</td> <td>å ¨æ£</td> <td>0.3%ï¼0%ï¼0.5%</td> <td>{{printParam.param19}}</td> <td>OK</td> <td></td> <td></td> @@ -284,7 +285,7 @@ <td>A</td> <td>å®å综åæµè¯ä»ª</td> <td>å ¨æ£</td> <td>ï¼500</td> <td>{{printParam.param20}}</td> <td>OK</td> <td></td> <td></td> @@ -296,7 +297,7 @@ <td>A</td> <td>å®å综åæµè¯ä»ª</td> <td>å ¨æ£</td> <td>ï¼500</td> <td>{{printParam.param21}}</td> <td>OK</td> <td></td> <td></td> @@ -308,7 +309,7 @@ <td>A</td> <td>å®å综åæµè¯ä»ª</td> <td>å ¨æ£</td> <td>0.22</td> <td>{{printParam.param22}}</td> <td>OK</td> <td></td> <td></td> @@ -321,7 +322,7 @@ <td>A</td> <td>å®å综åæµè¯ä»ª</td> <td>å ¨æ£</td> <td>362</td> <td>{{printParam.param23}}</td> <td>OK</td> <td></td> <td></td> @@ -333,7 +334,7 @@ <td>A</td> <td>æ´æºç»¼åæµè¯ä»ª</td> <td>å ¨æ£</td> <td>8.18</td> <td>{{printParam.param24}}</td> <td>OK</td> <td></td> <td></td> @@ -345,7 +346,7 @@ <td>A</td> <td>æ´æºç»¼åæµè¯ä»ª</td> <td>å ¨æ£</td> <td>0.1</td> <td>{{printParam.param25}}</td> <td>OK</td> <td></td> <td></td> @@ -359,7 +360,7 @@ <td>A</td> <td>æ´æºç»¼åæµè¯ä»ª</td> <td>å ¨æ£</td> <td>21.53,42.33,42.19</td> <td>{{printParam.param26}}</td> <td>OK</td> <td></td> <td></td> @@ -372,7 +373,7 @@ <td>A</td> <td>æ´æºç»¼åæµè¯ä»ª</td> <td>å ¨æ£</td> <td>49.20,49.34,49.15</td> <td>{{printParam.param27}}</td> <td>OK</td> <td></td> <td></td> @@ -384,7 +385,7 @@ <td>A</td> <td>æ´æºç»¼åæµè¯ä»ª</td> <td>å ¨æ£</td> <td>0.061%ï¼0.163%ï¼0.223%</td> <td>{{printParam.param28}}</td> <td>OK</td> <td></td> <td></td> @@ -396,7 +397,7 @@ <td>A</td> <td>æ´æºç»¼åæµè¯ä»ª</td> <td>å ¨æ£</td> <td>35.1,35.0,35.1</td> <td>{{printParam.param29}}</td> <td>OK</td> <td></td> <td></td> @@ -408,7 +409,7 @@ <td>A</td> <td>综åæµè¯ä»ª</td> <td>å ¨æ£</td> <td>â</td> <td>{{printParam.param30}}</td> <td>OK</td> <td></td> <td></td> @@ -421,7 +422,7 @@ <td>A</td> <td>æ´æºç»¼åæµè¯ä»ª</td> <td>å ¨æ£</td> <td>0.0041</td> <td>{{printParam.param31}}</td> <td>OK</td> <td></td> <td></td> @@ -433,7 +434,7 @@ <td>A</td> <td>æ°å¯æµè¯ä»ª</td> <td>å ¨æ£</td> <td>3.06</td> <td>{{printParam.param32}}</td> <td>OK</td> <td></td> <td></td> @@ -445,7 +446,7 @@ <td>A</td> <td>æ°å¯æµè¯ä»ª</td> <td>å ¨æ£</td> <td>o.48</td> <td>{{printParam.param33}}</td> <td>OK</td> <td></td> <td></td> @@ -457,7 +458,7 @@ <td>A</td> <td>çµæ§è½æµè¯ä»ª</td> <td>å ¨æ£</td> <td>4.7ï½A</td> <td>{{printParam.param34}}</td> <td>OK</td> <td></td> <td></td> @@ -469,7 +470,7 @@ <td>A</td> <td>çµæ§è½æµè¯ä»ª</td> <td>å ¨æ£</td> <td>562.1</td> <td>{{printParam.param35}}</td> <td>OK</td> <td></td> <td></td> @@ -481,7 +482,7 @@ <td>A</td> <td>æåæµè¯ä»ª</td> <td>å ¨æ£</td> <td>-137.1</td> <td>{{printParam.param36}}</td> <td>OK</td> <td></td> <td></td> @@ -493,7 +494,7 @@ <td>A</td> <td>EOLæµè¯</td> <td>å ¨æ£</td> <td>â</td> <td>{{printParam.param37}}</td> <td>OK</td> <td></td> <td></td> @@ -582,7 +583,18 @@ <script> export default { name: "offlineQualificationReport" name: "offlineQualificationReport", props: ['printParam'], data() { return { } }, mounted() { }, methods: { } } </script> jcdm-ui/src/views/main/cfkb/Instructions/index.vue
@@ -3,293 +3,43 @@ <el-row :gutter="5"> <el-col :span="7"> <el-card shadow="never"> <span class="head-font">å·¥ä½ç¼å· : {{headContent.processesCode}}</span> <span class="head-font">å·¥ä½ç¼å·ï¼{{headContent.processesCode}}</span> </el-card> </el-col> <el-col :span="7"> <el-card shadow="never"> <span class="head-font">å·¥ä½å称 : {{headContent.processesName}}</span> <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-button @click="print1">æå°</el-button>--> <el-button id="print" v-print="'#printMe'" type="primary">æå°</el-button> <el-button type="primary" style="float: right" icon="el-icon-search" size="mini" @click="serialLink">串å£è¿æ¥</el-button> <el-button @click="clearClick" style="float: right" type="danger" size="mini">æ¸ é¤</el-button> <el-card shadow="never" body-style="padding: 10px;"> <span class="head-font">产ååºåå·ï¼</span> <el-input style="width: 50%;" v-model="headContent.sfcCode" placeholder="请è¾å ¥å 容"></el-input> <!-- <el-button type="primary" id="print" v-print="'#printMe'">æå°</el-button>--> <el-button type="primary" id="print" v-print="'#printMe'" style="display: none;">æå°</el-button> <!-- <el-button id="print" @click="print1" type="primary">æå°</el-button>--> <el-button type="primary" @click="printBefore">æå°</el-button> <el-button @click="clearClick" type="danger">æ¸ é¤</el-button> </el-card> </el-col> </el-row> <el-row :gutter="5" style="margin-top: 5px"> <el-col :span="12"> <el-col :span="24"> <el-tabs type="border-card" style="height: 600px" v-model="activeName" @tab-click="changeMenu"> <el-tab-pane name="first"> <span slot="label"> <a class="el-icon-date"></a>é¦é¡µ</span> <el-col :span="24"> <div> <!-- <div id="printMe">--> <!-- <div style="font-size: 29px;text-align: center;margin-top: 64px">--> <!-- <span>çµé©±ç³»ç»æ»æ</span>--> <!-- </div>--> <!-- <div style="display: flex;margin-top: 2px;margin-left: 37px;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>336VDS</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>9900200461</span><br>--> <!-- </div>--> <!-- </div>--> <!-- <div class="div2" style="font-size: 15px;margin-left: 17px">--> <!-- <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>IP68</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>2407190000002</span><br>--> <!-- </div>--> <!-- </div>--> <!-- </div>--> <!-- <div style="font-size: 29px;margin-top: 2px;margin-left: 80px">--> <!-- <span>æ¹å·æºè¯å¨ååå±æéå ¬å¸</span>--> <!-- </div>--> <!-- <div style="text-align: center;margin-top: 97px;font-size: 20px">--> <!-- <span>TZ180XSDSZX01</span><br>--> <!-- <span>KTZ34X23SZX07</span><br>--> <!-- <span>993083</span><br>--> <!-- <span>9900166410</span><br>--> <!-- <span>2407190000002</span>--> <!-- </div>--> <!-- <div style="margin-top: 76px;display: flex;margin-left: 32px">--> <!-- <div ref="canvasWrapper" id="canvasWrapper1" style="width: 30%;flex: 1"></div>--> <!-- <div style="width: 70%;flex: 1;margin-top: 18px;margin-right: 17px">--> <!-- <span style="margin-left: -80px;font-size: 18px;font-family: FangSong">--> <!-- P9900166410#T{{text1}}--> <!-- </span><br>--> <!-- <span style="margin-left: -80px;font-size: 18px;font-family: FangSong">--> <!-- #V993983#SSW002.005#HHW001.001#NMCU#--> <!-- </span>--> <!--<!– <span style="font-size: 10px;word-break: break-all;display: flex;justify-content: center;width: 155px;margin-left: 9px">P9900166410#T{{text1}}#V993983#SSW002.005#HHW001.001#NBMS#</span>–>--> <!-- </div>--> <!-- </div>--> <!-- <div style="margin-top: 42px;display: flex;margin-left: 32px">--> <!-- <div ref="canvasWrapper" id="canvasWrapper2" style="width: 30%;flex: 1"></div>--> <!-- <div style="width: 70%;flex: 1;margin-top: 18px;margin-right: 17px">--> <!-- <span style="margin-left: -80px;font-size: 18px;font-family: FangSong">--> <!-- P9900166410#T{{text1}}--> <!-- </span><br>--> <!-- <span style="margin-left: -80px;font-size: 18px;font-family: FangSong">--> <!-- #V993983#SSW002.005#HHW001.001#NMCU#--> <!-- </span>--> <!-- <!– <span style="font-size: 10px;word-break: break-all;display: flex;justify-content: center;width: 155px;margin-left: 9px">P9900166410#T{{text1}}#V993983#SSW002.005#HHW001.001#NBMS#</span>–>--> <!-- </div>--> <!-- </div>--> <!-- <div style="text-align: center;margin-left: -130px;margin-top: 42px">--> <!-- <span>9900200461</span><br>--> <!-- <span>MCU</span><br>--> <!-- <span>HW 001.001</span><br>--> <!-- <span>SW 001.001</span><br>--> <!-- </div>--> <!-- </div>--> <div id="printMe"> <offline-qualification-report></offline-qualification-report> <offline-qualification-report :printParam="printParam"></offline-qualification-report> </div> <el-button style="display: none" @click="test1">çæäºç»´ç </el-button> <el-button style="display: none" @click="test2">çæäºç»´ç </el-button> </div> </el-col> </el-tab-pane> </el-tabs> </el-col> <el-col :span="12"> <el-input v-model="weightValue" placeholder="请è¾å ¥ç§°éæ°æ®"></el-input> <el-button @click="enterWeighing">å½å ¥</el-button> </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"> ä» æ¯æChrome 89+æè Edge 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> @@ -304,19 +54,23 @@ import USBDevice from "@/utils/usb.json"; import {addPassingStationCollection} from "@/api/main/da/passingStationCollection/passingStationCollection"; import { addTighteningParameters, enterWeighing, addTighteningParameters, enterWeighing, getPrintOfflineReportInfo, listParamCollection, replaceAssemblyCode, saveCampaignTimeParameters, yzAddBasicParameters, } from "@/api/main/da/paramCollection/paramCollection"; import QRCode from "qrcodejs2"; import OfflineQualificationReport from "@/views/components/offlineQualificationReport.vue"; import {listProductionOrde} from "@/api/main/om/productionOrde/productionOrde"; export default { name: "stationTerminal", components: {OfflineQualificationReport}, data() { return { printParam: { }, weightValue: '', showInput: true, serialPortContent: '', @@ -398,9 +152,6 @@ text1: '', } }, beforeDestroy() { this.exit(); }, created() { this.initStation(); // this.getStationConfList(); @@ -408,43 +159,7 @@ // 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( "å½å为HTTP模å¼æè æµè§å¨çæ¬è¿ä½ï¼ä¸æ¯æç½é¡µè¿æ¥ä¸²å£" ); } }, computed: { isDisable() { return this.btnType === "danger"; }, }, methods: { enterWeighing(){ if(this.headContent.sfcCode ==='' || this.weightValue === '' ){ this.$message.error('åæ°ä¸å ¨ï¼'); }else { let param = { sfcCode: this.headContent.sfcCode, weightValue: this.weightValue, } enterWeighing(param).then(response => { this.$message('å½å ¥å®æï¼'); }); } }, serialLink() { this.open1 = true }, @@ -462,17 +177,6 @@ } }, Release(){ // this.$message('portsListï¼'+this.portsList.length); if(this.btnType === "danger"){ this.$message('è¿æ¥äº!ï¼'); }else { this.$message('meiè¿æ¥äºï¼'); } }, serialPortMethod(value){ let formulaChildParams = { scanBarcode: value, @@ -548,41 +252,38 @@ // this.addOverStationCollection() this.print1() }, print1() { // æ°å¼é¡µé¢æå° let newStr = document.getElementById('printMe').innerHTML; let newWin = window.open('', '_blank'); newWin.document.body.innerHTML = newStr; newWin.print(); return false; }, test1(){ document.getElementById('canvasWrapper1').innerHTML = ''; this.$nextTick(() => { let qrCode = new QRCode('canvasWrapper1',{ width: 83, height: 83, text: 'P9900166410#T'+ this.text1 +'#V993983#SSW002.005#HHW001.001#NMCU#', colorDark: '#000', colorLight: '#fff' }) printBefore() { if (this.headContent.sfcCode !== '') { listProductionOrde({productNum: this.headContent.sfcCode}).then(response => { let rowsData = response.rows[0]; if(rowsData){ getPrintOfflineReportInfo({productNum: this.headContent.sfcCode}).then(response => { this.printParam = response.data document.getElementById('print').click(); }); }else { this.$message.error('ç³»ç»æ²¡ææ¤å·¥åï¼è¯·éæ°æ«ç ï¼'); } }); } else { this.$message.error('请å æ«ç !'); } ) }, test2(){ document.getElementById('canvasWrapper2').innerHTML = ''; this.$nextTick(() => { let qrCode = new QRCode('canvasWrapper2',{ width: 83, height: 83, text: 'P9900166410#T'+ this.text1 +'#V993983#SSW002.005#HHW001.001#NMCU#', colorDark: '#000', colorLight: '#fff' }) } ) }, // print1() { // if(this.headContent.sfcCode !== ''){ // // æ°å¼é¡µé¢æå° // const value = 'Hello, Parent!'; // this.$emit('value-sent', value); // let newStr = document.getElementById('printMe').innerHTML; // let newWin = window.open('', '_blank'); // newWin.document.body.innerHTML = newStr; // newWin.print(); // return; // }else { // this.$message.error('请å æ«ç '); // } // }, /** å ¥ç«å¢å è¿ç«ééè®°å½ **/ addOverStationCollection(){ this.passingStationForm = { @@ -598,20 +299,6 @@ addPassingStationCollection(this.passingStationForm).then(response => {}); yzAddBasicParameters(this.passingStationForm).then(response => {}); }, exit() { if (this.ws) { this.ws.close(); this.ws = null; } }, send() { if (this.ws) { this.ws.send(this.message); } else { alert("æªè¿æ¥å°æå¡å¨"); } }, initStation: async function () { await getIpv4().then(response => { this.StationConfQueryParams.ipAddress = response.msg @@ -939,6 +626,7 @@ } </script> <style scoped> .div1, .div2 { flex: 1; /* 两个divå¹³å容å¨å®½åº¦ */ @@ -988,5 +676,16 @@ .el-table .success-row { background: #f0f9eb; } /*éèæå°åºå*/ /*#printMe {*/ /* display: none;*/ /*}*/ /*!*æå°æ¶æ¾ç¤ºæå°åºå*!*/ /*@media print {*/ /* #printMe {*/ /* display: block;*/ /* }*/ /*}*/ </style> jcdm-ui/src/views/main/kb/repairOnline/index.vue
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,710 @@ <template> <div class="app-container"> <el-row :gutter="5"> <el-col :span="7"> <el-card style="height: 71px;" shadow="never"> å·¥ä½ç¼å· : <el-select v-model="headContent.processesCode" placeholder="请éæ©"> <el-option v-for="item in processesCodeOptions" :key="item.index" :label="item.processesCode" :value="item.processesCode"> </el-option> </el-select> </el-card> </el-col> <el-col :span="17"> <el-card shadow="never"> <span class="head-font">壳ä½ç¼ç : </span> <el-input style="width: 40%" ref="inputData" v-model="shellBarcode" @change="handleEnter" placeholder="请æ«æ壳ä½ç¼ç "></el-input> æ¯å¦æå» : <el-select v-model="engravingStatus" placeholder="请éæ©"> <el-option v-for="item in engravingOptions" :key="item.index" :label="item.label" :value="item.value"> </el-option> </el-select> <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-button @click="repairClick" type="primary">è¿ä¿®</el-button> <!-- <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-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, writeRepairInformationIntoPlc } 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"; import {listProcesses, listProcessesNoPage} from "@/api/main/bs/processes/processes"; export default { components: { VueQr }, name: "stationTerminal", data() { return { engravingStatus: '', engravingOptions: [{ value: '1', label: 'æ¯' }, { value: '2', label: 'å¦' }], processesCodeOptions:[], // å·¥åºç¼ç shellBarcode: '', // 工件æ¡ç 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: '', 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: '', trolleyYard: '', }, // æ¥è¯¢åæ° 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(); this.initProcesses() }, computed: { isDisable() { return this.btnType === "danger"; }, }, methods: { repairClick(){ if(this.headContent.processesCode !== '' && this.engravingStatus !== '' && this.headContent.sfcCode !== ''){ writeRepairInformationIntoPlc({ processesCode: this.headContent.processesCode, engravingStatus: this.engravingStatus, sfcCode: this.headContent.sfcCode, workOrderNo: this.workpieceInformation.workOrderNo, }).then(response => {}); }else { this.$message.error("åºç¡åæ°ç¼ºå¤±ï¼è¯·æ£æ¥å·¥ä½ç¼å·åæå»ç¶ææ¯å¦å·²éæ©ï¼"); } }, initProcesses(){ listProcessesNoPage(this.queryParams).then(response => { this.processesCodeOptions = response.rows; }); }, setFocus(){ this.$nextTick(()=>{ this.$refs.inputData.focus() }) }, changeMenu(tab, event) { console.log(tab, event); }, handleEnter() { if(this.headContent.processesCode !== '' && this.engravingStatus !== ''){ this.queryParams.trolleyYard = this.shellBarcode listProductionOrde(this.queryParams).then(response => { let rowsData = response.rows[0]; if(rowsData){ console.log('è¿å ¥åå§åå è½½listæ¹æ³'+response.rows[0]) this.headContent.sfcCode = rowsData.productNum; this.workpieceInformation.productCode = rowsData.productCode; this.workpieceInformation.workOrderNo = rowsData.workOrderNo; this.workpieceInformation.planQty = rowsData.planQty; }else { this.$message.error('ç³»ç»æ²¡ææ¤å·¥åï¼è¯·éæ°æ«ç ï¼'); } }); }else { this.$message.error("åºç¡åæ°ç¼ºå¤±ï¼è¯·æ£æ¥å·¥ä½ç¼å·åæå»ç¶ææ¯å¦å·²éæ©ï¼"); } }, 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 = '' this.headContent.processesCode = '' this.engravingStatus = '' this.headContent.sfcCode = '' this.workpieceInformation.workOrderNo = '' this.shellBarcode = '' }, clearClick(){ this.endClear() }, /** æ¥è¯¢å·¥åå表 */ async getList() { await listProductionOrde(this.queryParams).then(response => { console.log('è¿å ¥åå§åå è½½listæ¹æ³') let rowsData = response.rows[0]; if(rowsData){ console.log('è¿å ¥åå§åå è½½listæ¹æ³'+response.rows[0]) 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.printMaterialCode = rowsData.productCode }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>