| | |
| | | <template> |
| | | <div class="title"> |
| | | <el-row :gutter="20" style="height:85%"> |
| | | <el-col :span="8"> |
| | | <span style="position: relative; top: 100px;left: 30px;"> |
| | | <h4>䏿¥¼è®¾å¤çæ§</h4> |
| | | <el-row :gutter="0" style="height:100%; width:400px;"> |
| | | <el-col :span="16"> |
| | | <span style="position: absolute; top: 10px; left: 30px;"> |
| | | <h2>䏿¥¼åæåºè®¾å¤çæ§</h2> |
| | | </span> |
| | | <el-row :gutter="20" style="height:1000px"> |
| | | <el-col :span="8"> |
| | | <div> |
| | | <div v-for="(group, index) in groupedLines(linescopy7)" :key="index"> |
| | | <div class="positionY-group"> |
| | | <LineInfoCopy v-for="(line, lineIndex) in group.lines" :key="lineIndex" |
| | | :equipNo="line.equipNo" :imgType="line.imgType" :positionX="line.positionX" |
| | | :positionY="line.positionY" :condition="line.condition" |
| | | url="api/Equipment/GetLineInfoByNo" /> |
| | | </div> |
| | | </div> |
| | | <div style="margin-top: 118px;"></div> |
| | | <div v-for="(group, index) in groupedLines(linescopy8)" :key="index"> |
| | | <div class="positionY-group"> |
| | | <LineInfoCopy v-for="(line, lineIndex) in group.lines" :key="lineIndex" |
| | | :equipNo="line.equipNo" :imgType="line.imgType" :positionX="line.positionX" |
| | | :positionY="line.positionY" :condition="line.condition" |
| | | url="api/Equipment/GetLineInfoByNo" /> |
| | | </div> |
| | | </div> |
| | | <div style="margin-top: 115px;"></div> |
| | | <div v-for="(group, index) in groupedLines(linescopy9)" :key="index"> |
| | | <div class="positionY-group"> |
| | | <LineInfoCopy v-for="(line, lineIndex) in group.lines" :key="lineIndex" |
| | | :equipNo="line.equipNo" :imgType="line.imgType" :positionX="line.positionX" |
| | | :positionY="line.positionY" :condition="line.condition" |
| | | url="api/Equipment/GetLineInfoByNo" /> |
| | | </div> |
| | | </div> |
| | | <div style="margin-top: 112px;"></div> |
| | | <div v-for="(group, index) in groupedLines(linescopy10)" :key="index"> |
| | | <div class="positionY-group"> |
| | | <LineInfoCopy v-for="(line, lineIndex) in group.lines" :key="lineIndex" |
| | | :equipNo="line.equipNo" :imgType="line.imgType" :positionX="line.positionX" |
| | | :positionY="line.positionY" :condition="line.condition" /> |
| | | </div> |
| | | </div> |
| | | <div style="margin-top: 109px;"></div> |
| | | <div v-for="(group, index) in groupedLines(linescopy11)" :key="index"> |
| | | <div class="positionY-group"> |
| | | <LineInfoCopy v-for="(line, lineIndex) in group.lines" :key="lineIndex" |
| | | :equipNo="line.equipNo" :imgType="line.imgType" :positionX="line.positionX" |
| | | :positionY="line.positionY" :condition="line.condition" /> |
| | | </div> |
| | | </div> |
| | | <div style="margin-top: 107px;"></div> |
| | | <div v-for="(group, index) in groupedLines(linescopy12)" :key="index"> |
| | | <div class="positionY-group"> |
| | | <LineInfoCopy v-for="(line, lineIndex) in group.lines" :key="lineIndex" |
| | | :equipNo="line.equipNo" :imgType="line.imgType" :positionX="line.positionX" |
| | | :positionY="line.positionY" :condition="line.condition" /> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </el-col> |
| | | |
| | | <el-col :span="8"> |
| | | <el-row :gutter="20" style="height:1000px; width:100%;"> |
| | | <el-col :span="24"> |
| | | <div> |
| | | <div v-for="(group, index) in groupedLines(linescopy1)" :key="index"> |
| | | <div class="positionY-group"> |
| | |
| | | url="api/Equipment/GetLineInfoByNo" /> |
| | | </div> |
| | | </div> |
| | | <div style="margin-top: 108px;"></div> |
| | | <div style="margin-top: 30px;"></div> |
| | | <div v-for="(group, index) in groupedLines(linescopy2)" :key="index"> |
| | | <div class="positionY-group"> |
| | | <LineInfoCopy v-for="(line, lineIndex) in group.lines" :key="lineIndex" |
| | |
| | | url="api/Equipment/GetLineInfoByNo" /> |
| | | </div> |
| | | </div> |
| | | <div style="margin-top: 58px;"></div> |
| | | <div style="margin-top:50px;"></div> |
| | | <div v-for="(group, index) in groupedLines(linescopy3)" :key="index"> |
| | | <div class="positionY-group"> |
| | | <LineInfoCopy v-for="(line, lineIndex) in group.lines" :key="lineIndex" |
| | |
| | | url="api/Equipment/GetLineInfoByNo" /> |
| | | </div> |
| | | </div> |
| | | <div style="margin-top: 58px;"></div> |
| | | <div style="margin-top: 20px;"></div> |
| | | <div v-for="(group, index) in groupedLines(linescopy4)" :key="index"> |
| | | <div class="positionY-group"> |
| | | <LineInfoCopy v-for="(line, lineIndex) in group.lines" :key="lineIndex" |
| | |
| | | :positionY="line.positionY" :condition="line.condition" /> |
| | | </div> |
| | | </div> |
| | | <div style="margin-top: 115px;"></div> |
| | | <div style="margin-top: 40px;"></div> |
| | | <div v-for="(group, index) in groupedLines(linescopy5)" :key="index"> |
| | | <div class="positionY-group"> |
| | | <LineInfoCopy v-for="(line, lineIndex) in group.lines" :key="lineIndex" |
| | |
| | | :positionY="line.positionY" :condition="line.condition" /> |
| | | </div> |
| | | </div> |
| | | <div style="margin-top: 115px;"></div> |
| | | <div style="margin-top: 30px;"></div> |
| | | <div v-for="(group, index) in groupedLines(linescopy6)" :key="index"> |
| | | <div class="positionY-group"> |
| | | <LineInfoCopy v-for="(line, lineIndex) in group.lines" :key="lineIndex" |
| | | :equipNo="line.equipNo" :imgType="line.imgType" :positionX="line.positionX" |
| | | :positionY="line.positionY" :condition="line.condition" /> |
| | | </div> |
| | | </div> |
| | | <div style="margin-top: 40px;"></div> |
| | | <div v-for="(group, index) in groupedLines(linescopy7)" :key="index"> |
| | | <div class="positionY-group"> |
| | | <LineInfoCopy v-for="(line, lineIndex) in group.lines" :key="lineIndex" |
| | | :equipNo="line.equipNo" :imgType="line.imgType" :positionX="line.positionX" |
| | | :positionY="line.positionY" :condition="line.condition" /> |
| | | </div> |
| | | </div> |
| | | <div style="margin-top: 30px;"></div> |
| | | <div v-for="(group, index) in groupedLines(linescopy8)" :key="index"> |
| | | <div class="positionY-group"> |
| | | <LineInfoCopy v-for="(line, lineIndex) in group.lines" :key="lineIndex" |
| | | :equipNo="line.equipNo" :imgType="line.imgType" :positionX="line.positionX" |
| | | :positionY="line.positionY" :condition="line.condition" /> |
| | | </div> |
| | | </div> |
| | | <div style="margin-top: 30px;"></div> |
| | | <div v-for="(group, index) in groupedLines(linescopy9)" :key="index"> |
| | | <div class="positionY-group"> |
| | | <LineInfoCopy v-for="(line, lineIndex) in group.lines" :key="lineIndex" |
| | | :equipNo="line.equipNo" :imgType="line.imgType" :positionX="line.positionX" |
| | | :positionY="line.positionY" :condition="line.condition" /> |
| | | </div> |
| | | </div> |
| | | <div style="margin-top: 50px;"></div> |
| | | <div v-for="(group, index) in groupedLines(linescopy10)" :key="index"> |
| | | <div class="positionY-group"> |
| | | <LineInfoCopy v-for="(line, lineIndex) in group.lines" :key="lineIndex" |
| | | :equipNo="line.equipNo" :imgType="line.imgType" :positionX="line.positionX" |
| | | :positionY="line.positionY" :condition="line.condition" /> |
| | | </div> |
| | | </div> |
| | | <div style="margin-top: 0px;"></div> |
| | | <div v-for="(group, index) in groupedLines(linescopy11)" :key="index"> |
| | | <div class="positionY-group"> |
| | | <LineInfoCopy v-for="(line, lineIndex) in group.lines" :key="lineIndex" |
| | | :equipNo="line.equipNo" :imgType="line.imgType" :positionX="line.positionX" |
| | | :positionY="line.positionY" :condition="line.condition" /> |
| | | </div> |
| | | </div> |
| | | <div style="margin-top: 30px;"></div> |
| | | <div v-for="(group, index) in groupedLines(linescopy12)" :key="index"> |
| | | <div class="positionY-group"> |
| | | <LineInfoCopy v-for="(line, lineIndex) in group.lines" :key="lineIndex" |
| | | :equipNo="line.equipNo" :imgType="line.imgType" :positionX="line.positionX" |
| | |
| | | <el-col :span="8"> |
| | | <!-- å åæº --> |
| | | <div style="position: relative; top: 50px;"> |
| | | <!-- <div style="margin-top: 33px;"></div> --> |
| | | <div class="stackerDiv"> |
| | | <div class="stackDivName">ä¸å·å åæº</div> |
| | | <LineComponent :x="xValue1" ref="stacker1" :equipNo="SC01"></LineComponent> |
| | | <div class="stackDivName" style="text-align: left;">äºå·å åæº</div> |
| | | <LineComponent :x="xValue1" ref="stacker5" :equipNo="SC05"></LineComponent> |
| | | </div> |
| | | <el-divider></el-divider> |
| | | <div class="stackerDiv"> |
| | | <div class="stackDivName">äºå·å åæº</div> |
| | | <LineComponent :x="xValue2" ref="stacker2" :equipNo="SC02"></LineComponent> |
| | | <div class="stackDivName" style="text-align: left;">åå·å åæº</div> |
| | | <LineComponent :x="xValue2" ref="stacker4" :equipNo="SC04"></LineComponent> |
| | | </div> |
| | | <el-divider></el-divider> |
| | | <!-- <div style="margin-top: 85px;"></div> --> |
| | | <div class="stackerDiv"> |
| | | <div class="stackDivName">ä¸å·å åæº</div> |
| | | <div class="stackDivName" style="text-align: left;">ä¸å·å åæº</div> |
| | | <LineComponent :x="xValue3" ref="stacker3" :equipNo="SC03"></LineComponent> |
| | | </div> |
| | | <el-divider></el-divider> |
| | | <!-- <div style="margin-top: 55px;"></div> --> |
| | | <div class="stackerDiv"> |
| | | <div class="stackDivName">åå·å åæº</div> |
| | | <LineComponent :x="xValue4" ref="stacker4" :equipNo="SC04"></LineComponent> |
| | | <div class="stackDivName" style="text-align: left;">äºå·å åæº</div> |
| | | <LineComponent :x="xValue4" ref="stacker2" :equipNo="SC02"></LineComponent> |
| | | </div> |
| | | <el-divider></el-divider> |
| | | <!-- <div style="margin-top: 35px;"></div> --> |
| | | <div class="stackerDiv"> |
| | | <div class="stackDivName">äºå·å åæº</div> |
| | | <LineComponent :x="xValue5" ref="stacker5" :equipNo="SC05"></LineComponent> |
| | | <div class="stackDivName" style="text-align: left;">ä¸å·å åæº</div> |
| | | <LineComponent :x="xValue5" ref="stacker1" :equipNo="SC01"></LineComponent> |
| | | </div> |
| | | <el-divider></el-divider> |
| | | <div class="stackerDiv"> |
| | | <div class="stackDivName">å
å·å åæº</div> |
| | | <LineComponent :x="xValue6" ref="stacker6" :equipNo="SC06"></LineComponent> |
| | | </div> |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | |
| | | </div> |
| | | |
| | | <el-row :gutter="0" style="width:400px;"> |
| | | <el-col :span="16"> |
| | | <span style="position: absolute; top: 10px; left: 30px;"> |
| | | <h2>䏿¥¼æååºè®¾å¤çæ§</h2> |
| | | </span> |
| | | <el-row :gutter="20" style="height:1000px; width:100%;"> |
| | | <el-col :span="24"> |
| | | <div> |
| | | <div v-for="(group, index) in groupedLines(linescopyCP1)" :key="index"> |
| | | <div class="positionY-group"> |
| | | <LineInfo v-for="(line, lineIndex) in group.lines" :key="lineIndex" |
| | | :equipNo="line.equipNo" :imgType="line.imgType" :positionX="line.positionX" |
| | | :positionY="line.positionY" :condition="line.condition" |
| | | url="api/Equipment/GetLineInfoByNo" /> |
| | | </div> |
| | | </div> |
| | | <div style="margin-top: 20px;"></div> |
| | | <div v-for="(group, index) in groupedLines(linescopyCP2)" :key="index"> |
| | | <div class="positionY-group"> |
| | | <LineInfo v-for="(line, lineIndex) in group.lines" :key="lineIndex" |
| | | :equipNo="line.equipNo" :imgType="line.imgType" :positionX="line.positionX" |
| | | :positionY="line.positionY" :condition="line.condition" |
| | | url="api/Equipment/GetLineInfoByNo" /> |
| | | </div> |
| | | </div> |
| | | <div style="margin-top:40px;"></div> |
| | | <div v-for="(group, index) in groupedLines(linescopyCP3)" :key="index"> |
| | | <div class="positionY-group"> |
| | | <LineInfo v-for="(line, lineIndex) in group.lines" :key="lineIndex" |
| | | :equipNo="line.equipNo" :imgType="line.imgType" :positionX="line.positionX" |
| | | :positionY="line.positionY" :condition="line.condition" |
| | | url="api/Equipment/GetLineInfoByNo" /> |
| | | </div> |
| | | </div> |
| | | <div style="margin-top: 20px;"></div> |
| | | <div v-for="(group, index) in groupedLines(linescopyCP4)" :key="index"> |
| | | <div class="positionY-group"> |
| | | <LineInfo v-for="(line, lineIndex) in group.lines" :key="lineIndex" |
| | | :equipNo="line.equipNo" :imgType="line.imgType" :positionX="line.positionX" |
| | | :positionY="line.positionY" :condition="line.condition" /> |
| | | </div> |
| | | </div> |
| | | <div style="margin-top: 50px;"></div> |
| | | <div v-for="(group, index) in groupedLines(linescopyCP5)" :key="index"> |
| | | <div class="positionY-group"> |
| | | <LineInfo v-for="(line, lineIndex) in group.lines" :key="lineIndex" |
| | | :equipNo="line.equipNo" :imgType="line.imgType" :positionX="line.positionX" |
| | | :positionY="line.positionY" :condition="line.condition" /> |
| | | </div> |
| | | </div> |
| | | <div style="margin-top: 30px;"></div> |
| | | <div v-for="(group, index) in groupedLines(linescopyCP6)" :key="index"> |
| | | <div class="positionY-group"> |
| | | <LineInfo v-for="(line, lineIndex) in group.lines" :key="lineIndex" |
| | | :equipNo="line.equipNo" :imgType="line.imgType" :positionX="line.positionX" |
| | | :positionY="line.positionY" :condition="line.condition" /> |
| | | </div> |
| | | </div> |
| | | <div style="margin-top: 50px;"></div> |
| | | <div v-for="(group, index) in groupedLines(linescopyCP7)" :key="index"> |
| | | <div class="positionY-group"> |
| | | <LineInfo v-for="(line, lineIndex) in group.lines" :key="lineIndex" |
| | | :equipNo="line.equipNo" :imgType="line.imgType" :positionX="line.positionX" |
| | | :positionY="line.positionY" :condition="line.condition" /> |
| | | </div> |
| | | </div> |
| | | <div style="margin-top: 30px;"></div> |
| | | <div v-for="(group, index) in groupedLines(linescopyCP8)" :key="index"> |
| | | <div class="positionY-group"> |
| | | <LineInfo v-for="(line, lineIndex) in group.lines" :key="lineIndex" |
| | | :equipNo="line.equipNo" :imgType="line.imgType" :positionX="line.positionX" |
| | | :positionY="line.positionY" :condition="line.condition" /> |
| | | </div> |
| | | </div> |
| | | <div style="margin-top: 50px;"></div> |
| | | <div v-for="(group, index) in groupedLines(linescopyCP9)" :key="index"> |
| | | <div class="positionY-group"> |
| | | <LineInfo v-for="(line, lineIndex) in group.lines" :key="lineIndex" |
| | | :equipNo="line.equipNo" :imgType="line.imgType" :positionX="line.positionX" |
| | | :positionY="line.positionY" :condition="line.condition" /> |
| | | </div> |
| | | </div> |
| | | <div style="margin-top: 30px;"></div> |
| | | <div v-for="(group, index) in groupedLines(linescopyCP10)" :key="index"> |
| | | <div class="positionY-group"> |
| | | <LineInfo v-for="(line, lineIndex) in group.lines" :key="lineIndex" |
| | | :equipNo="line.equipNo" :imgType="line.imgType" :positionX="line.positionX" |
| | | :positionY="line.positionY" :condition="line.condition" /> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <!-- å åæº --> |
| | | <div style="position: relative; top: 50px;"> |
| | | <!-- <div style="margin-top: 33px;"></div> --> |
| | | <div class="stackerDivCP"> |
| | | <div class="stackDivName" style="text-align: left;">äºå·å åæº</div> |
| | | <LineComponentCP :x="xValue1" ref="stackerCP5" :equipNo="SC05CP"></LineComponentCP> |
| | | </div> |
| | | <el-divider></el-divider> |
| | | <div class="stackerDivCP"> |
| | | <div class="stackDivName" style="text-align: left;">åå·å åæº</div> |
| | | <LineComponentCP :x="xValue2" ref="stackerCP4" :equipNo="SC04CP"></LineComponentCP> |
| | | </div> |
| | | <el-divider></el-divider> |
| | | <!-- <div style="margin-top: 85px;"></div> --> |
| | | <div class="stackerDivCP"> |
| | | <div class="stackDivName" style="text-align: left;">ä¸å·å åæº</div> |
| | | <LineComponentCP :x="xValue3" ref="stackerCP3" :equipNo="SC03CP"></LineComponentCP> |
| | | </div> |
| | | <el-divider></el-divider> |
| | | <!-- <div style="margin-top: 55px;"></div> --> |
| | | <div class="stackerDivCP"> |
| | | <div class="stackDivName" style="text-align: left;">äºå·å åæº</div> |
| | | <LineComponentCP :x="xValue4" ref="stackerCP2" :equipNo="SC02CP"></LineComponentCP> |
| | | </div> |
| | | <el-divider></el-divider> |
| | | <!-- <div style="margin-top: 35px;"></div> --> |
| | | <div class="stackerDivCP"> |
| | | <div class="stackDivName" style="text-align: left;">ä¸å·å åæº</div> |
| | | <LineComponentCP :x="xValue5" ref="stackerCP1" :equipNo="SC01CP"></LineComponentCP> |
| | | </div> |
| | | <el-divider></el-divider> |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | </template> |
| | | |
| | | |
| | | |
| | | <script> |
| | | import { onMounted, ref, reactive } from "vue"; |
| | | import LineInfo from "./LineInfo.vue"; |
| | | import LineInfoCopy from "./LineInfocopy.vue"; |
| | | import LineComponent from './LineComponent.vue'; |
| | | import LineComponentCP from './LineComponentCP.vue'; |
| | | import JElDescription from "./JElDescription"; |
| | | import { useWebSocket } from '@/uitils/websocket'; |
| | | |
| | | |
| | | export default { |
| | | setup() { |
| | | // 使ç¨ä¿®å¤åçWebSocketé©å彿° |
| | | const { ws, messages, status, send, reconnect } = useWebSocket(); |
| | | |
| | | return { |
| | | ws, |
| | | messages, |
| | | status, |
| | | send, |
| | | reconnect |
| | | }; |
| | | }, |
| | | data() { |
| | | return { |
| | | ws: null, // WebSocketå®ä¾ |
| | | messages: [], // æ¶æ¯å表 |
| | | status: { // è¿æ¥ç¶æ |
| | | isConnected: false, |
| | | error: null |
| | | }, |
| | | // å åæºè®¾å¤ç¼å·é
ç½® |
| | | SC01: "SC01_YL", |
| | | SC02: "SC02_YL", |
| | | SC03: "SC03_YLDual", |
| | | SC04: "SC04_YLDual", |
| | | SC05: "SC05_YLDual", |
| | | SC01CP: "SC01_CP", |
| | | SC02CP: "SC02_CP", |
| | | SC03CP: "SC03_CP", |
| | | SC04CP: "SC04_CP", |
| | | SC05CP: "SC05_CP", |
| | | linescopy1: [ |
| | | // { |
| | | // equipNo: "101", |
| | | // imgType: "1", |
| | | // positionX: 0, |
| | | // positionY: 16, |
| | | // condition: false, |
| | | // }, |
| | | // { |
| | | // equipNo: "102", |
| | | // imgType: "1", |
| | | // positionX: 0, |
| | | // positionY: 16, |
| | | // condition: false, |
| | | // }, |
| | | // { |
| | | // equipNo: "103", |
| | | // imgType: "1", |
| | | // positionX: 0, |
| | | // positionY: 16, |
| | | // condition: false, |
| | | // }, |
| | | // { |
| | | // equipNo: "109", |
| | | // imgType: "1", |
| | | // positionX: 0.5, |
| | | // positionY: 16, |
| | | // condition: false, |
| | | // }, |
| | | // { |
| | | // equipNo: "200", |
| | | // imgType: "1", |
| | | // positionX: 1, |
| | | // positionY: 16, |
| | | // condition: false, |
| | | // }, |
| | | // { |
| | | // equipNo: "202", |
| | | // imgType: "1", |
| | | // positionX: 1, |
| | | // positionY: 16, |
| | | // condition: false, |
| | | // }, |
| | | // { |
| | | // equipNo: "204", |
| | | // imgType: "1", |
| | | // positionX: 1, |
| | | // positionY: 16, |
| | | // condition: false, |
| | | // }, |
| | | // { |
| | | // equipNo: "206", |
| | | // imgType: "1", |
| | | // positionX: 1, |
| | | // positionY: 16, |
| | | // condition: false, |
| | | // }, |
| | | // { |
| | | // equipNo: "208", |
| | | // imgType: "1", |
| | | // positionX: 1, |
| | | // positionY: 16, |
| | | // condition: false, |
| | | // }, |
| | | // { |
| | | // equipNo: "210", |
| | | // imgType: "1", |
| | | // positionX: 1, |
| | | // positionY: 16, |
| | | // condition: false, |
| | | // }, |
| | | // { |
| | | // equipNo: "212", |
| | | // imgType: "1", |
| | | // positionX: 1, |
| | | // positionY: 16, |
| | | // condition: false, |
| | | // }, |
| | | // { |
| | | // equipNo: "302", |
| | | // imgType: "1", |
| | | // positionX: 1, |
| | | // positionY: 16, |
| | | // condition: false, |
| | | // }, |
| | | // { |
| | | // equipNo: "304", |
| | | // imgType: "1", |
| | | // positionX: 1, |
| | | // positionY: 16, |
| | | // condition: false, |
| | | // }, |
| | | // { |
| | | // equipNo: "306", |
| | | // imgType: "1", |
| | | // positionX: 1, |
| | | // positionY: 16, |
| | | // condition: false, |
| | | // }, |
| | | // { |
| | | // equipNo: "309", |
| | | // imgType: "1", |
| | | // positionX: 1.5, |
| | | // positionY: 16, |
| | | // condition: false, |
| | | // }, |
| | | // { |
| | | // equipNo: "310", |
| | | // imgType: "1", |
| | | // positionX: 2, |
| | | // positionY: 16, |
| | | // condition: false, |
| | | // }, |
| | | // { |
| | | // equipNo: "313", |
| | | // imgType: "1", |
| | | // positionX: 2.5, |
| | | // positionY: 16, |
| | | // condition: false, |
| | | // }, |
| | | // { |
| | | // equipNo: "314", |
| | | // imgType: "1", |
| | | // positionX: 3, |
| | | // positionY: 16, |
| | | // condition: false, |
| | | // }, |
| | | { |
| | | equipNo: "1005", |
| | | equipNo: "320", |
| | | imgType: "1", |
| | | positionX: 0.6, |
| | | positionY: 8, |
| | | condition: false, |
| | | }, |
| | | { |
| | | equipNo: "1006", |
| | | imgType: "1", |
| | | positionX: 0.6, |
| | | positionY: 8, |
| | | condition: false, |
| | | }, |
| | | |
| | | { |
| | | equipNo: "1007", |
| | | imgType: "1", |
| | | positionX: 0.6, |
| | | positionY: 20, |
| | | condition: false, |
| | | }, |
| | | { |
| | | equipNo: "1008", |
| | | imgType: "1", |
| | | positionX: 0.6, |
| | | positionY: 20, |
| | | //positionX: 3, |
| | | positionX: 0, |
| | | positionY: 16, |
| | | condition: false, |
| | | } |
| | | ], |
| | | linescopy2: [ |
| | | // { |
| | | // equipNo: "104", |
| | | // imgType: "1", |
| | | // positionX: 0, |
| | | // positionY: 16, |
| | | // condition: false, |
| | | // }, |
| | | // { |
| | | // equipNo: "106", |
| | | // imgType: "1", |
| | | // positionX: 0, |
| | | // positionY: 16, |
| | | // condition: false, |
| | | // }, |
| | | // { |
| | | // equipNo: "108", |
| | | // imgType: "1", |
| | | // positionX: 0, |
| | | // positionY: 16, |
| | | // condition: false, |
| | | // }, |
| | | // { |
| | | // equipNo: "200.1", |
| | | // imgType: "1", |
| | | // positionX: 2.325, |
| | | // positionY: 16, |
| | | // condition: false, |
| | | // }, |
| | | // { |
| | | // equipNo: "201", |
| | | // imgType: "1", |
| | | // positionX: 2.325, |
| | | // positionY: 16, |
| | | // condition: false, |
| | | // }, |
| | | // { |
| | | // equipNo: "203", |
| | | // imgType: "1", |
| | | // positionX: 2.325, |
| | | // positionY: 16, |
| | | // condition: false, |
| | | // }, |
| | | // { |
| | | // equipNo: "205", |
| | | // imgType: "1", |
| | | // positionX: 2.325, |
| | | // positionY: 16, |
| | | // condition: false, |
| | | // }, |
| | | // { |
| | | // equipNo: "207", |
| | | // imgType: "1", |
| | | // positionX: 2.325, |
| | | // positionY: 16, |
| | | // condition: false, |
| | | // }, |
| | | // { |
| | | // equipNo: "209", |
| | | // imgType: "1", |
| | | // positionX: 2.325, |
| | | // positionY: 16, |
| | | // condition: false, |
| | | // }, |
| | | // { |
| | | // equipNo: "211", |
| | | // imgType: "1", |
| | | // positionX: 2.325, |
| | | // positionY: 16, |
| | | // condition: false, |
| | | // }, |
| | | // { |
| | | // equipNo: "301", |
| | | // imgType: "1", |
| | | // positionX: 2.325, |
| | | // positionY: 16, |
| | | // condition: false, |
| | | // }, |
| | | // { |
| | | // equipNo: "303", |
| | | // imgType: "1", |
| | | // positionX: 2.325, |
| | | // positionY: 16, |
| | | // condition: false, |
| | | // }, |
| | | // { |
| | | // equipNo: "305", |
| | | // imgType: "1", |
| | | // positionX: 2.325, |
| | | // positionY: 16, |
| | | // condition: false, |
| | | // }, |
| | | // { |
| | | // equipNo: "311", |
| | | // imgType: "1", |
| | | // positionX: 4.65, |
| | | // positionY: 16, |
| | | // condition: false, |
| | | // }, |
| | | // { |
| | | // equipNo: "315", |
| | | // imgType: "1", |
| | | // positionX: 6.975, |
| | | // positionY: 16, |
| | | // condition: false, |
| | | // }, |
| | | { |
| | | equipNo: "1009", |
| | | equipNo: "321", |
| | | imgType: "1", |
| | | positionX: 0.6, |
| | | positionY: 8, |
| | | condition: false, |
| | | }, |
| | | { |
| | | equipNo: "1010", |
| | | imgType: "1", |
| | | positionX: 0.6, |
| | | positionY: 8, |
| | | condition: false, |
| | | }, |
| | | |
| | | { |
| | | equipNo: "1011", |
| | | imgType: "1", |
| | | positionX: 0.6, |
| | | positionY: 20, |
| | | condition: false, |
| | | }, |
| | | { |
| | | equipNo: "1025", |
| | | imgType: "1", |
| | | positionX: 0.6, |
| | | positionY: 21, |
| | | condition: false, |
| | | }, |
| | | { |
| | | equipNo: "1012", |
| | | imgType: "1", |
| | | positionX: 0.6, |
| | | positionY: 20, |
| | | //positionX: 6.975, |
| | | positionX: 0, |
| | | positionY: 16, |
| | | condition: false, |
| | | } |
| | | ], |
| | | linescopy3: [ |
| | | // { |
| | | // equipNo: "309.1", |
| | | // imgType: "1", |
| | | // positionX: 20.175, |
| | | // positionY: 16, |
| | | // condition: false, |
| | | // }, |
| | | // { |
| | | // equipNo: "312", |
| | | // imgType: "1", |
| | | // positionX: 20.65, |
| | | // positionY: 16, |
| | | // condition: false, |
| | | // }, |
| | | // { |
| | | // equipNo: "316", |
| | | // imgType: "1", |
| | | // positionX: 25.65, |
| | | // positionY: 0, |
| | | // condition: false, |
| | | // }, |
| | | { |
| | | equipNo: "1017", |
| | | equipNo: "322", |
| | | imgType: "1", |
| | | positionX: 0.6, |
| | | positionY: 8, |
| | | condition: false, |
| | | }, |
| | | { |
| | | equipNo: "1018", |
| | | imgType: "1", |
| | | positionX: 0.6, |
| | | positionY: 8, |
| | | condition: false, |
| | | }, |
| | | |
| | | { |
| | | equipNo: "1019", |
| | | imgType: "1", |
| | | positionX: 0.6, |
| | | positionY: 20, |
| | | condition: false, |
| | | }, |
| | | { |
| | | equipNo: "1026", |
| | | imgType: "1", |
| | | positionX: 0.6, |
| | | positionY: 21, |
| | | condition: false, |
| | | }, |
| | | { |
| | | equipNo: "1020", |
| | | imgType: "1", |
| | | positionX: 0.6, |
| | | positionY: 20, |
| | | //positionX: 25.65, |
| | | positionX: 0, |
| | | positionY: 0, |
| | | condition: false, |
| | | } |
| | | ], |
| | | linescopy4: [ |
| | | // { |
| | | // equipNo: "413", |
| | | // imgType: "1", |
| | | // positionX: 22, |
| | | // positionY: 16, |
| | | // condition: false, |
| | | // }, |
| | | // { |
| | | // equipNo: "317", |
| | | // imgType: "1", |
| | | // positionX: 25.65, |
| | | // positionY: 0, |
| | | // condition: false, |
| | | // }, |
| | | { |
| | | equipNo: "1021", |
| | | equipNo: "323", |
| | | imgType: "1", |
| | | positionX: 0.6, |
| | | positionY: 8, |
| | | condition: false, |
| | | }, |
| | | { |
| | | equipNo: "1022", |
| | | imgType: "1", |
| | | positionX: 0.6, |
| | | positionY: 8, |
| | | condition: false, |
| | | }, |
| | | |
| | | { |
| | | equipNo: "1023", |
| | | imgType: "1", |
| | | positionX: 0.6, |
| | | positionY: 20, |
| | | condition: false, |
| | | }, |
| | | { |
| | | equipNo: "1024", |
| | | imgType: "1", |
| | | positionX: 0.6, |
| | | positionY: 20, |
| | | //positionX: 25.65, |
| | | positionX: 0, |
| | | positionY: 0, |
| | | condition: false, |
| | | } |
| | | ], |
| | | linescopy5: [ |
| | | // { |
| | | // equipNo: "410", |
| | | // imgType: "1", |
| | | // positionX: 17.525, |
| | | // positionY: 16, |
| | | // condition: false, |
| | | // }, |
| | | // { |
| | | // equipNo: "411", |
| | | // imgType: "1", |
| | | // positionX: 17.525, |
| | | // positionY: 16, |
| | | // condition: false, |
| | | // }, |
| | | // { |
| | | // equipNo: "412", |
| | | // imgType: "1", |
| | | // positionX: 17.525, |
| | | // positionY: 16, |
| | | // condition: false, |
| | | // }, |
| | | // { |
| | | // equipNo: "318", |
| | | // imgType: "1", |
| | | // positionX: 21.65, |
| | | // positionY: 16, |
| | | // condition: false, |
| | | // }, |
| | | { |
| | | equipNo: "1031", |
| | | equipNo: "324", |
| | | imgType: "1", |
| | | positionX: 0.6, |
| | | positionY: 8, |
| | | condition: false, |
| | | }, |
| | | { |
| | | equipNo: "1032", |
| | | imgType: "1", |
| | | positionX: 0.6, |
| | | positionY: 8, |
| | | condition: false, |
| | | }, |
| | | |
| | | { |
| | | equipNo: "1033", |
| | | imgType: "1", |
| | | positionX: 0.6, |
| | | positionY: 20, |
| | | condition: false, |
| | | }, |
| | | { |
| | | equipNo: "1034", |
| | | imgType: "1", |
| | | positionX: 0.6, |
| | | positionY: 20, |
| | | //positionX: 21.65, |
| | | positionX: 0, |
| | | positionY: 16, |
| | | condition: false, |
| | | } |
| | | ], |
| | | linescopy6: [ |
| | | // { |
| | | // equipNo: "414", |
| | | // imgType: "1", |
| | | // positionX: 22, |
| | | // positionY: 16, |
| | | // condition: false, |
| | | // }, |
| | | // { |
| | | // equipNo: "319", |
| | | // imgType: "1", |
| | | // positionX: 24.3, |
| | | // positionY: 16, |
| | | // condition: false, |
| | | // }, |
| | | { |
| | | equipNo: "1035", |
| | | equipNo: "325", |
| | | imgType: "1", |
| | | positionX: 0.6, |
| | | positionY: 8, |
| | | condition: false, |
| | | }, |
| | | { |
| | | equipNo: "1036", |
| | | imgType: "1", |
| | | positionX: 0.6, |
| | | positionY: 8, |
| | | condition: false, |
| | | }, |
| | | |
| | | { |
| | | equipNo: "1037", |
| | | imgType: "1", |
| | | positionX: 0.6, |
| | | positionY: 20, |
| | | condition: false, |
| | | }, |
| | | { |
| | | equipNo: "1038", |
| | | imgType: "1", |
| | | positionX: 0.6, |
| | | positionY: 20, |
| | | //positionX: 24.3, |
| | | positionX: 0, |
| | | positionY: 16, |
| | | condition: false, |
| | | } |
| | | ], |
| | | linescopy7: [ |
| | | //{ |
| | | // equipNo: "409", |
| | | // imgType: "2", |
| | | // positionX: 17.525, |
| | | // positionY: 16, |
| | | // condition: false, |
| | | // }, |
| | | // { |
| | | // equipNo: "415", |
| | | // imgType: "2", |
| | | // positionX: 18.9, |
| | | // positionY: 16, |
| | | // condition: false, |
| | | // }, |
| | | { |
| | | equipNo: "1001", |
| | | imgType: "1", |
| | | positionX: 5, |
| | | positionY: 8, |
| | | equipNo: "424", |
| | | imgType: "2", |
| | | //positionX: 19.3, |
| | | positionX: 0, |
| | | positionY: 16, |
| | | condition: false, |
| | | }, |
| | | { |
| | | equipNo: "1002", |
| | | imgType: "1", |
| | | positionX: 5, |
| | | positionY: 8, |
| | | condition: false, |
| | | }, |
| | | |
| | | { |
| | | equipNo: "1003", |
| | | imgType: "1", |
| | | positionX: 5, |
| | | positionY: 20, |
| | | condition: false, |
| | | }, |
| | | { |
| | | equipNo: "1004", |
| | | imgType: "1", |
| | | positionX: 5, |
| | | positionY: 20, |
| | | condition: false, |
| | | }, |
| | | // { |
| | | // equipNo: "424.1", |
| | | // imgType: "2", |
| | | // positionX: 21.7, |
| | | // positionY: 16, |
| | | // condition: false, |
| | | // }, |
| | | ], |
| | | linescopy8: [ |
| | | { |
| | | equipNo: "1039", |
| | | imgType: "1", |
| | | positionX: 6, |
| | | positionY: 8, |
| | | condition: false, |
| | | }, |
| | | { |
| | | equipNo: "1040", |
| | | imgType: "1", |
| | | positionX: 6, |
| | | positionY: 16, |
| | | condition: false, |
| | | }, |
| | | // { |
| | | // equipNo: "408", |
| | | // imgType: "2", |
| | | // positionX: 17.525, |
| | | // positionY: 16, |
| | | // condition: false, |
| | | // }, |
| | | // { |
| | | // equipNo: "416", |
| | | // imgType: "2", |
| | | // positionX: 18.9, |
| | | // positionY: 16, |
| | | // condition: false, |
| | | // }, |
| | | // { |
| | | // equipNo: "423", |
| | | // imgType: "2", |
| | | // positionX: 19.3, |
| | | // positionX: 0, |
| | | // positionY: 16, |
| | | // condition: false, |
| | | // }, |
| | | ], |
| | | linescopy9: [ |
| | | // { |
| | | // equipNo: "407", |
| | | // imgType: "2", |
| | | // positionX: 17.525, |
| | | // positionY: 16, |
| | | // condition: false, |
| | | // }, |
| | | { |
| | | equipNo: "1013", |
| | | imgType: "1", |
| | | positionX: 6, |
| | | positionY: 8, |
| | | condition: false, |
| | | }, |
| | | { |
| | | equipNo: "1014", |
| | | imgType: "1", |
| | | positionX: 6, |
| | | equipNo: "422", |
| | | imgType: "2", |
| | | //positionX: 20.65, |
| | | positionX: 0, |
| | | positionY: 16, |
| | | condition: false, |
| | | }, |
| | | // { |
| | | // equipNo: "422.1", |
| | | // imgType: "2", |
| | | // positionX: 23.05, |
| | | // positionY: 16, |
| | | // condition: false, |
| | | // }, |
| | | ], |
| | | linescopy10: [ |
| | | // { |
| | | // equipNo: "406", |
| | | // imgType: "2", |
| | | // positionX: 17.525, |
| | | // positionY: 16, |
| | | // condition: false, |
| | | // }, |
| | | { |
| | | equipNo: "1015", |
| | | imgType: "1", |
| | | positionX: 6, |
| | | positionY: 8, |
| | | condition: false, |
| | | }, |
| | | { |
| | | equipNo: "1016", |
| | | imgType: "1", |
| | | positionX: 6, |
| | | equipNo: "425", |
| | | imgType: "2", |
| | | //positionX: 24.4, |
| | | positionX: 0, |
| | | positionY: 16, |
| | | condition: false, |
| | | }, |
| | | ], |
| | | linescopy11: [ |
| | | { |
| | | equipNo: "1027", |
| | | imgType: "1", |
| | | positionX: 6, |
| | | positionY: 8, |
| | | condition: false, |
| | | }, |
| | | { |
| | | equipNo: "1028", |
| | | imgType: "1", |
| | | positionX: 6, |
| | | positionY: 16, |
| | | condition: false, |
| | | }, |
| | | // { |
| | | // equipNo: "404", |
| | | // imgType: "2", |
| | | // positionX: 17.525, |
| | | // positionY: 16, |
| | | // condition: false, |
| | | // }, |
| | | // { |
| | | // equipNo: "418", |
| | | // imgType: "2", |
| | | // positionX: 18.9, |
| | | // positionY: 16, |
| | | // condition: false, |
| | | // }, |
| | | // { |
| | | // equipNo: "421", |
| | | // imgType: "2", |
| | | // positionX: 19.3, |
| | | // positionY: 16, |
| | | // condition: false, |
| | | // }, |
| | | |
| | | ], |
| | | linescopy12: [ |
| | | // { |
| | | // equipNo: "403", |
| | | // imgType: "2", |
| | | // positionX: 17.525, |
| | | // positionY: 16, |
| | | // condition: false, |
| | | // }, |
| | | { |
| | | equipNo: "1029", |
| | | imgType: "1", |
| | | positionX: 6, |
| | | positionY: 8, |
| | | equipNo: "419", |
| | | imgType: "2", |
| | | //positionX: 18.9, |
| | | positionX: 0, |
| | | positionY: 16, |
| | | condition: false, |
| | | }, |
| | | // { |
| | | // equipNo: "419.1", |
| | | // imgType: "2", |
| | | // positionX: 23.1, |
| | | // positionY: 16, |
| | | // condition: false, |
| | | // }, |
| | | ], |
| | | linescopyCP1: [ |
| | | { |
| | | equipNo: "1030", |
| | | equipNo: "1003", |
| | | imgType: "1", |
| | | positionX: 6, |
| | | positionX: 0, |
| | | positionY: 16, |
| | | condition: false, |
| | | }, |
| | | ], |
| | | |
| | | linescopyCP2: [ |
| | | { |
| | | equipNo: "1008", |
| | | imgType: "1", |
| | | positionX: 0, |
| | | positionY: 16, |
| | | condition: false, |
| | | }, |
| | | ], |
| | | linescopyCP3: [ |
| | | { |
| | | equipNo: "1007", |
| | | imgType: "1", |
| | | positionX: 0, |
| | | positionY: 16, |
| | | condition: false, |
| | | }, |
| | | ], |
| | | linescopyCP4: [ |
| | | { |
| | | equipNo: "1012", |
| | | imgType: "1", |
| | | positionX: 0, |
| | | positionY: 16, |
| | | condition: false, |
| | | }, |
| | | ], |
| | | linescopyCP5: [ |
| | | { |
| | | equipNo: "1013", |
| | | imgType: "1", |
| | | positionX: 0, |
| | | positionY: 16, |
| | | condition: false, |
| | | }, |
| | | ], |
| | | linescopyCP6: [ |
| | | { |
| | | equipNo: "1018", |
| | | imgType: "1", |
| | | positionX: 0, |
| | | positionY: 16, |
| | | condition: false, |
| | | }, |
| | | ], |
| | | linescopyCP7: [ |
| | | { |
| | | equipNo: "1017", |
| | | imgType: "1", |
| | | positionX: 0, |
| | | positionY: 16, |
| | | condition: false, |
| | | }, |
| | | ], |
| | | linescopyCP8: [ |
| | | { |
| | | equipNo: "1022", |
| | | imgType: "1", |
| | | positionX: 0, |
| | | positionY: 16, |
| | | condition: false, |
| | | }, |
| | | ], |
| | | linescopyCP9: [ |
| | | { |
| | | equipNo: "1023", |
| | | imgType: "1", |
| | | positionX: 0, |
| | | positionY: 16, |
| | | condition: false, |
| | | }, |
| | | ], |
| | | linescopyCP10: [ |
| | | { |
| | | equipNo: "1026", |
| | | imgType: "1", |
| | | positionX: 0, |
| | | positionY: 16, |
| | | condition: false, |
| | | }, |
| | | ], |
| | | |
| | | StackerCrane: { |
| | | Automatic: "", |
| | | Fault: "", |
| | |
| | | LineInfoCopy, |
| | | LineInfo, |
| | | LineComponent, |
| | | LineComponentCP, |
| | | JElDescription, |
| | | }, |
| | | methods: { |
| | | groupedLines(linescopy) { |
| | | const groups = {}; |
| | | linescopy.forEach((line) => { |
| | | const positionY = line.positionY; |
| | | if (!groups[positionY]) { |
| | | groups[positionY] = { |
| | | positionY, |
| | | lines: [], |
| | | }; |
| | | } |
| | | groups[positionY].lines.push(line); |
| | | }); |
| | | return Object.values(groups); |
| | | }, |
| | | mouseClickRGVFirst() { |
| | | this.fullscreenLoading = true; |
| | | this.RGVFirst = true; |
| | | this.fullscreenLoading = false; |
| | | }, |
| | | mouseClickSecond() { |
| | | this.fullscreenLoading = true; |
| | | this.RGVSecond = true; |
| | | this.fullscreenLoading = false; |
| | | }, |
| | | mouseClickThird() { |
| | | this.fullscreenLoading = true; |
| | | this.RGVThird = true; |
| | | this.fullscreenLoading = false; |
| | | }, |
| | | // SendCommand(x) { |
| | | // this.fullscreenLoading = true; |
| | | // this.formRGV.DeviceCode = x; |
| | | // this.http.post("api/DeviceInfo/RGVHandTask", this.formRGV) |
| | | // .then((x) => { |
| | | // if (!x.status) { |
| | | // this.$message.error(x.message); |
| | | // } else { |
| | | // this.$Message.success(x.message); |
| | | // $vue.refresh(); |
| | | // } |
| | | // }) |
| | | // .finally(() => { |
| | | // this.fullscreenLoading = false; |
| | | // }); |
| | | // }, |
| | | // RGVReset(x) { |
| | | // this.fullscreenLoading = true; |
| | | // this.http.post("api/DeviceInfo/RGVReset?DeviceCode=" + x, null, "") |
| | | // .then((x) => { |
| | | // if (!x.status) { |
| | | // this.$message.error(x.message); |
| | | // } else { |
| | | // this.$Message.success(x.message); |
| | | |
| | | // } |
| | | // }) |
| | | // .finally(() => { |
| | | // this.fullscreenLoading = false; |
| | | // }); |
| | | // }, |
| | | // RGVemergencyStop(x) { |
| | | // this.fullscreenLoading = true; |
| | | // this.http.post("api/DeviceInfo/RGVemergencyStop?DeviceCode=" + x, null, "") |
| | | // .then((x) => { |
| | | // if (!x.status) { |
| | | // this.$message.error(x.message); |
| | | // } else { |
| | | // this.$Message.success(x.message); |
| | | |
| | | // } |
| | | // }) |
| | | // .finally(() => { |
| | | // this.fullscreenLoading = false; |
| | | // }); |
| | | // }, |
| | | // RGVPause(x) { |
| | | // this.fullscreenLoading = true; |
| | | // this.http.post("api/DeviceInfo/RGVPause?DeviceCode=" + x, null, "") |
| | | // .then((x) => { |
| | | // if (!x.status) { |
| | | // this.$message.error(x.message); |
| | | // } else { |
| | | // this.$Message.success(x.message); |
| | | // } |
| | | // }) |
| | | // .finally(() => { |
| | | // this.fullscreenLoading = false; |
| | | // }); |
| | | // }, |
| | | // RGVCancel(x) { |
| | | // this.fullscreenLoading = true; |
| | | // this.http.post("api/DeviceInfo/RGVCancel?DeviceCode=" + x, null, "") |
| | | // .then((x) => { |
| | | // if (!x.status) { |
| | | // this.$message.error(x.message); |
| | | // } else { |
| | | // this.$Message.success(x.message); |
| | | // } |
| | | // }) |
| | | // .finally(() => { |
| | | // this.fullscreenLoading = false; |
| | | // }); |
| | | // }, |
| | | // RGVInitialize(x) { |
| | | // this.fullscreenLoading = true; |
| | | // this.http.post("api/DeviceInfo/RGVInitialize?DeviceCode=" + x, null, "") |
| | | // .then((x) => { |
| | | // if (!x.status) { |
| | | // this.$message.error(x.message); |
| | | // } else { |
| | | // this.$Message.success(x.message); |
| | | // } |
| | | // }) |
| | | // .finally(() => { |
| | | // this.fullscreenLoading = false; |
| | | // }); |
| | | // }, |
| | | }, |
| | | computed: { |
| | | |
| | | }, |
| | | mounted() { |
| | | // çå¬WebSocketæ¶æ¯ |
| | | this.$watch( |
| | | () => this.messages.length, |
| | | (newLength, oldLength) => { |
| | | if (newLength > oldLength) { |
| | | const data = this.messages[newLength - 1]; |
| | | this.processWebSocketMessage(data); |
| | | } |
| | | } |
| | | ); |
| | | }, |
| | | created() { |
| | | // WebSocketè¿æ¥å·²å¨setupä¸åå§å |
| | | }, |
| | | methods: { |
| | | // å¤çWebSocketæ¶æ¯ |
| | | processWebSocketMessage(data) { |
| | | //æ¶å°çæ¶æ¯æ°æ® |
| | | console.log(data); |
| | | // å¤çå åæºæ°æ® |
| | | if (data && data.R_PP_Status) { |
| | | const stackerComponentsMap = { |
| | | "SC01_YL": 'stacker1', |
| | | "SC02_YL": 'stacker2', |
| | | "SC03_YLDual": 'stacker3', |
| | | "SC04_YLDual": 'stacker4', |
| | | "SC05_YLDual": 'stacker5', |
| | | "SC01_CP": 'stackerCP1', |
| | | "SC02_CP": 'stackerCP2', |
| | | "SC03_CP": 'stackerCP3', |
| | | "SC04_CP": 'stackerCP4', |
| | | "SC05_CP": 'stackerCP5', |
| | | }; |
| | | const componentKey = stackerComponentsMap[data.R_PP_Status]; |
| | | if (componentKey) { |
| | | const stackerData = { |
| | | YL_Status: data.YL_Status || "", |
| | | YL_AutoStatus: data.YL_AutoStatus || "", |
| | | YL_TaskNum: data.YL_TaskNum || "", |
| | | YL_WorkStatus: data.YL_WorkStatus || "", |
| | | YL_WorkType: data.YL_WorkType || "", |
| | | YL_Row: data.YL_Row || "0", |
| | | YL_Column: data.YL_Column || "0", |
| | | YL_Layer: data.YL_Layer || "0", |
| | | DeviceCode: data.R_PP_Status || "", |
| | | StackerAlarm: data.StackerAlarm || "" |
| | | }; |
| | | this.$nextTick(() => { |
| | | if (this.$refs[componentKey]) { |
| | | this.$refs[componentKey].moveDot(stackerData); |
| | | } else { |
| | | console.error('ç»ä»¶å¼ç¨ä¸åå¨:', componentKey); |
| | | } |
| | | }); |
| | | } else { |
| | | console.warn('æªæ¾å°å¹é
çç»ä»¶æ å°:', data.R_PP_Status); |
| | | } |
| | | } |
| | | // å¤çè¾éçº¿æ°æ®ï¼å
¼å®¹åæåºåæååºï¼ |
| | | else if (data && (data.ConveyorLineInfo || data.ConveyorLineCPInfo)) { |
| | | // è·åè¾éçº¿æ°æ®ï¼å
¼å®¹ä¸åçé®å |
| | | const conveyorLineData = data.ConveyorLineInfo || data.ConveyorLineCPInfo; |
| | | // æ´æ°è¾éçº¿ç¶æ |
| | | |
| | | // å®ä¹ç¼å·æ å°å
³ç³»ï¼åæåºåæååºï¼ |
| | | const stationCodeMap = { |
| | | "SC05-1": "320", |
| | | "SC05-2": "321", |
| | | "SC04-1": "322", |
| | | "SC04-2": "323", |
| | | "SC03-1": "324", |
| | | "SC03-2": "325", |
| | | "SC02-2": "424", |
| | | "SC02-1": "423", |
| | | "SC01-1": "422", |
| | | "SC01-2": "425", |
| | | }; |
| | | |
| | | // å
æ¶éææErrorä¿¡æ¯ |
| | | const errorMap = {}; |
| | | for (const key in conveyorLineData) { |
| | | if (conveyorLineData[key].Error !== undefined) { |
| | | errorMap[key] = conveyorLineData[key].Error; |
| | | } |
| | | } |
| | | |
| | | // éåææè¾éçº¿æ°æ®ï¼æ´æ°å¯¹åºçæ¡ä»¶ |
| | | for (const stationCode in conveyorLineData) { |
| | | // è·³è¿åªæErroråæ®µç项 |
| | | if (conveyorLineData[stationCode].Error !== undefined && Object.keys(conveyorLineData[stationCode]).length === 1) { |
| | | continue; |
| | | } |
| | | |
| | | // è·åæ å°åçç¼å· |
| | | const mappedStationCode = stationCodeMap[stationCode] || stationCode; |
| | | // éåæælinescopyæ°ç»ï¼æ¥æ¾å¯¹åºçç«å° |
| | | const allLines = [ |
| | | ...this.linescopy1, |
| | | ...this.linescopy2, |
| | | ...this.linescopy3, |
| | | ...this.linescopy4, |
| | | ...this.linescopy5, |
| | | ...this.linescopy6, |
| | | ...this.linescopy7, |
| | | ...this.linescopy8, |
| | | ...this.linescopy9, |
| | | ...this.linescopy10, |
| | | ...this.linescopy11, |
| | | ...this.linescopy12, |
| | | ...this.linescopyCP1, |
| | | ...this.linescopyCP2, |
| | | ...this.linescopyCP3, |
| | | ...this.linescopyCP4, |
| | | ...this.linescopyCP5, |
| | | ...this.linescopyCP6, |
| | | ...this.linescopyCP7, |
| | | ...this.linescopyCP8, |
| | | ...this.linescopyCP9, |
| | | ...this.linescopyCP10 |
| | | ]; |
| | | |
| | | allLines.forEach((line) => { |
| | | if (String(line.equipNo) === String(mappedStationCode)) { |
| | | // 夿æ¯å¦ä¸ºæååºè¾é线ï¼ç¼å·ä»¥10å¼å¤´ï¼ |
| | | const isCP = String(line.equipNo).startsWith('10'); |
| | | // æ ¹æ®HasGoodsåæ®µå¤æç¶æï¼æååºæ ¹æ®ä»»å¡å·å¤ææ¯å¦æç |
| | | const rawHasGoods = conveyorLineData[stationCode].HasGoods || false; |
| | | const taskNum = conveyorLineData[stationCode].TaskNum; |
| | | const hasGoods = isCP ? (taskNum && taskNum !== '0') : rawHasGoods; |
| | | // ç¡®ä¿conditionæ¯å¸å°å¼ |
| | | line.condition = !!hasGoods; |
| | | // åå¨è¾é线详ç»ä¿¡æ¯å°å
¨å±åé |
| | | this.$root.conveyorLineDetails = this.$root.conveyorLineDetails || {}; |
| | | // è·åç°æç详ç»ä¿¡æ¯ |
| | | const existingDetails = this.$root.conveyorLineDetails[line.equipNo] || {}; |
| | | // æ ¹æ®åºç±»å使ç¨ä¸åçåæ®µå¤ææ¥è¦ç¶æ |
| | | let alarmMessage = "æ "; |
| | | let isAlarm = false; |
| | | |
| | | if (isCP) { |
| | | // æååºï¼ä½¿ç¨Statusåæ®µ |
| | | const statusValue = conveyorLineData[stationCode].Status; |
| | | if (statusValue === 1 || statusValue === 2 || statusValue === 3) { |
| | | alarmMessage = "æ£å¸¸"; |
| | | isAlarm = false; |
| | | } else if (statusValue === 4) { |
| | | alarmMessage = statusValue === 0 ? "è±æºä¸" : "è®¾å¤æ
é"; |
| | | isAlarm = true; |
| | | } else { |
| | | isAlarm = false; |
| | | } |
| | | } else { |
| | | // åæåºï¼ä½¿ç¨Erroråæ®µ |
| | | let errorValue = undefined; |
| | | for (const scKey in stationCodeMap) { |
| | | if (stationCodeMap[scKey] === mappedStationCode) { |
| | | errorValue = errorMap[scKey]; |
| | | break; |
| | | } |
| | | } |
| | | if (errorValue === 1) { |
| | | alarmMessage = "æ£å¸¸"; |
| | | } else if (errorValue === 2) { |
| | | alarmMessage = "æ
é"; |
| | | isAlarm = true; |
| | | } |
| | | } |
| | | // åå¹¶æ°æ®ï¼ç¡®ä¿æ¥èªä¸åæ°æ®æºçåæ®µé½è½è¢«ä¿ç |
| | | this.$root.conveyorLineDetails[line.equipNo] = { |
| | | taskNum: taskNum || existingDetails.taskNum || "æ ", |
| | | inStock: hasGoods ? "æ¯" : existingDetails.inStock || "å¦", |
| | | alarm: alarmMessage || existingDetails.alarm || "æ ", |
| | | rfid: conveyorLineData[stationCode].RFID || existingDetails.rfid || "æ ", |
| | | width: conveyorLineData[stationCode].Width || existingDetails.width || 0, |
| | | request: conveyorLineData[stationCode].Request || existingDetails.request || "æ ", |
| | | reresult: conveyorLineData[stationCode].Reresult || existingDetails.reresult || "æ ", |
| | | error: alarmMessage || existingDetails.error || "æ ", |
| | | heartbeat: conveyorLineData[stationCode].Heartbeat || existingDetails.heartbeat || "æ ", |
| | | status: conveyorLineData[stationCode].Status || existingDetails.status || "æ ", |
| | | palletCode: conveyorLineData[stationCode].PalletCode || existingDetails.palletCode || "æ ", |
| | | command: conveyorLineData[stationCode].Command || existingDetails.command || "æ ", |
| | | isAlarm: isAlarm, |
| | | }; |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | // å¤çè®¾å¤æ°æ®ï¼å
æ¬è¾éçº¿åæ¨¡æä¿¡å· |
| | | else if (data && (data.StackerDataJson || data.ConveyorLineDataJson)) { |
| | | // å¤çè¾éçº¿æ°æ® |
| | | if (data.ConveyorLineDataJson) { |
| | | try { |
| | | const conveyorLineData = JSON.parse(data.ConveyorLineDataJson); |
| | | // æ´æ°è¾éçº¿ç¶æ |
| | | // å®ä¹ç¼å·æ å°å
³ç³»ï¼ç´æ¥æ å°å°å
·ä½çè¾é线ç¼å· |
| | | const stationCodeMap = { |
| | | "SC05-1": "320", |
| | | "SC05-2": "321", |
| | | "SC04-1": "322", |
| | | "SC04-2": "323", |
| | | "SC03-1": "324", |
| | | "SC03-2": "325", |
| | | "SC02-2": "424", |
| | | "SC02-1": "423", |
| | | "SC01-1": "422", |
| | | "SC01-2": "425", |
| | | "SC05-1-CP": "1003", |
| | | "SC05-2-CP": "1008", |
| | | "SC04-1-CP": "1007", |
| | | "SC04-2-CP": "1012", |
| | | "SC03-1-CP": "1013", |
| | | "SC03-2-CP": "1018", |
| | | "SC02-1-CP": "1017", |
| | | "SC02-2-CP": "1022", |
| | | "SC01-1-CP": "1023", |
| | | "SC01-2-CP": "1026", |
| | | }; |
| | | |
| | | // éåæælinescopyæ°ç»ï¼æ¥æ¾å¯¹åºçç«å° |
| | | const linesArrays = [ |
| | | this.linescopy1, |
| | | this.linescopy2, |
| | | this.linescopy3, |
| | | this.linescopy4, |
| | | this.linescopy5, |
| | | this.linescopy6, |
| | | this.linescopy7, |
| | | this.linescopy8, |
| | | this.linescopy9, |
| | | this.linescopy10, |
| | | this.linescopy11, |
| | | this.linescopy12, |
| | | this.linescopyCP1, |
| | | this.linescopyCP2, |
| | | this.linescopyCP3, |
| | | this.linescopyCP4, |
| | | this.linescopyCP5, |
| | | this.linescopyCP6, |
| | | this.linescopyCP7, |
| | | this.linescopyCP8, |
| | | this.linescopyCP9, |
| | | this.linescopyCP10 |
| | | ]; |
| | | |
| | | // éåææè¾éçº¿æ°æ®ï¼æ´æ°å¯¹åºçæ¡ä»¶ |
| | | for (const roadway in conveyorLineData) { |
| | | // è·åæ å°åçç¼å· |
| | | const mappedStationCode = stationCodeMap[roadway] || roadway; |
| | | |
| | | // éåæ¯ä¸ªlinesæ°ç» |
| | | linesArrays.forEach((linesArray) => { |
| | | linesArray.forEach((line) => { |
| | | if (String(line.equipNo) === String(mappedStationCode)) { |
| | | if (conveyorLineData[roadway][line.equipNo]) { |
| | | // 夿æ¯å¦ä¸ºæååºè¾é线ï¼ç¼å·ä»¥10å¼å¤´ï¼ |
| | | const isCP = String(line.equipNo).startsWith('10'); |
| | | // æ ¹æ®HasGoodsåæ®µå¤æç¶æï¼æååºæ ¹æ®ä»»å¡å·å¤ææ¯å¦æç |
| | | const rawHasGoods = conveyorLineData[roadway][line.equipNo].inStock || conveyorLineData[roadway][line.equipNo].HasGoods || false; |
| | | const taskNum = conveyorLineData[roadway][line.equipNo].taskNum || conveyorLineData[roadway][line.equipNo].TaskNum; |
| | | const hasGoods = isCP ? (taskNum && taskNum !== '0') : rawHasGoods; |
| | | line.condition = !!hasGoods; |
| | | // åå¨è¾é线详ç»ä¿¡æ¯å°å
¨å±åé |
| | | this.$root.conveyorLineDetails = this.$root.conveyorLineDetails || {}; |
| | | // è·åç°æç详ç»ä¿¡æ¯ |
| | | const existingDetails = this.$root.conveyorLineDetails[line.equipNo] || {}; |
| | | // æ ¹æ®åºç±»å使ç¨ä¸åçåæ®µå¤ææ¥è¦ç¶æ |
| | | let alarmMessage = "æ "; |
| | | let isAlarm = false; |
| | | |
| | | if (isCP) { |
| | | // æååºï¼ä½¿ç¨Statusåæ®µ |
| | | const statusValue = conveyorLineData[roadway][line.equipNo].status || conveyorLineData[roadway][line.equipNo].Status; |
| | | if (statusValue === 1 || statusValue === 2 || statusValue === 3) { |
| | | alarmMessage = "æ£å¸¸"; |
| | | isAlarm = false; |
| | | } else if (statusValue === 0 || statusValue === 4) { |
| | | alarmMessage = statusValue === 0 ? "è±æºä¸" : "è®¾å¤æ
é"; |
| | | isAlarm = true; |
| | | } else { |
| | | isAlarm = false; |
| | | } |
| | | } else { |
| | | // åæåºï¼ä½¿ç¨Erroråæ®µ |
| | | const errorValue = conveyorLineData[roadway][line.equipNo].error || conveyorLineData[roadway][line.equipNo].Error; |
| | | if (errorValue === 1) { |
| | | alarmMessage = "æ£å¸¸"; |
| | | isAlarm = false; |
| | | } else if (errorValue === 2) { |
| | | alarmMessage = "æ
é"; |
| | | isAlarm = true; |
| | | } else { |
| | | isAlarm = false; |
| | | } |
| | | } |
| | | // åå¹¶æ°æ®ï¼ç¡®ä¿æ¥èªä¸åæ°æ®æºçåæ®µé½è½è¢«ä¿ç |
| | | this.$root.conveyorLineDetails[line.equipNo] = { |
| | | taskNum: taskNum || existingDetails.taskNum || "æ ", |
| | | inStock: hasGoods ? "æ¯" : existingDetails.inStock || "å¦", |
| | | rfid: conveyorLineData[roadway][line.equipNo].rfid || conveyorLineData[roadway][line.equipNo].RFID || existingDetails.rfid || "æ ", |
| | | width: conveyorLineData[roadway][line.equipNo].width || conveyorLineData[roadway][line.equipNo].Width || existingDetails.width || 0, |
| | | request: conveyorLineData[roadway][line.equipNo].request || conveyorLineData[roadway][line.equipNo].Request || existingDetails.request || "æ ", |
| | | reresult: conveyorLineData[roadway][line.equipNo].reresult || conveyorLineData[roadway][line.equipNo].Reresult || existingDetails.reresult || "æ ", |
| | | error: alarmMessage || existingDetails.error || "æ ", |
| | | alarm: alarmMessage || existingDetails.alarm || "æ ", |
| | | heartbeat: conveyorLineData[roadway][line.equipNo].heartbeat || conveyorLineData[roadway][line.equipNo].Heartbeat || existingDetails.heartbeat || "æ ", |
| | | status: conveyorLineData[roadway][line.equipNo].status || conveyorLineData[roadway][line.equipNo].Status || existingDetails.status || "æ ", |
| | | palletCode: conveyorLineData[roadway][line.equipNo].palletCode || conveyorLineData[roadway][line.equipNo].PalletCode || existingDetails.palletCode || "æ ", |
| | | command: conveyorLineData[roadway][line.equipNo].command || conveyorLineData[roadway][line.equipNo].Command || existingDetails.command || "æ ", |
| | | isAlarm: isAlarm, |
| | | }; |
| | | } |
| | | } |
| | | }); |
| | | }); |
| | | } |
| | | } catch (e) { |
| | | console.error('è¾éçº¿æ°æ®è§£æå¤±è´¥', e); |
| | | } |
| | | } |
| | | } |
| | | // ä¸åæ¾ç¤ºæªå¤ççæ¶æ¯ç±»åæ¥å¿ï¼é¿å
æ§å¶å°æ··ä¹± |
| | | // åªå¤çå·²ç¥ç±»åçæ°æ®ï¼å¿½ç¥å
¶ä»ç±»å |
| | | }, |
| | | groupedLines(linescopy) { |
| | | const groups = {}; |
| | | linescopy.forEach((line) => { |
| | |
| | | }); |
| | | }, |
| | | }, |
| | | computed: { |
| | | |
| | | }, |
| | | mounted() { |
| | | }, |
| | | created() { |
| | | |
| | | this.ws = new WebSocket('ws://localhost:9260/'); |
| | | |
| | | this.ws.onmessage = (event) => { |
| | | try { |
| | | const data = JSON.parse(event.data); |
| | | console.log('æ¶å°æ¶æ¯:', data); |
| | | // å¤çæ¶æ¯... |
| | | } catch (e) { |
| | | console.error('æ¶æ¯è§£æå¤±è´¥', e); |
| | | } |
| | | }; |
| | | const stackerComponentsMap = { |
| | | "SC01": 'stacker1', |
| | | "SC02": 'stacker2', |
| | | "SC03": 'stacker3', |
| | | "SC04": 'stacker4', |
| | | "SC05": 'stacker5', |
| | | "SC06": 'stacker6', |
| | | }; |
| | | // const componentKey = stackerComponentsMap[data.R_PP_Status]; |
| | | // if (componentKey) { |
| | | // this.StackerCrane.Automatic = data; |
| | | // this.StackerCrane.Fault = data; |
| | | // this.StackerCrane.Running = data; |
| | | // this.StackerCrane.CurrentColumn = data; |
| | | // this.StackerCrane.CurrentLayer = data; |
| | | // this.StackerCrane.LevelPoint = data; |
| | | // this.StackerCrane.DeviceName = data; |
| | | // this.StackerCrane.DeviceCode = data; |
| | | // this.StackerCrane.CurrentTaskNum = data; |
| | | // this.StackerCrane.StackerAlarm = data; |
| | | |
| | | // this.$nextTick(() => { |
| | | // this.$refs[componentKey].moveDot(this.StackerCrane); |
| | | // }); |
| | | // } |
| | | const stationMap = { |
| | | "SC011F": this.linescopy1, |
| | | "SC021F": this.linescopy2, |
| | | "SC031F": this.linescopy3, |
| | | "SC041F": this.linescopy4, |
| | | "SC051F": this.linescopy5, |
| | | "SC061F": this.linescopy6, |
| | | "SC071F": this.linescopy7, |
| | | "SC081F": this.linescopy8, |
| | | "SC091F": this.linescopy9, |
| | | "SC101F": this.linescopy10, |
| | | "SC111F": this.linescopy11, |
| | | "SC121F": this.linescopy12, |
| | | "SC012F": this.linescopy13, |
| | | "SC022F": this.linescopy13, |
| | | "SC032F": this.linescopy13, |
| | | "SC042F": this.linescopy13, |
| | | "SC052F": this.linescopy13, |
| | | "SC062F": this.linescopy13, |
| | | "SC072F": this.linescopy13, |
| | | "SC082F": this.linescopy14, |
| | | }; |
| | | |
| | | // var station = eventData.stationChildCode; |
| | | // if (stationMap[eventData.roadway]) { |
| | | // stationMap[eventData.roadway].forEach((line) => { |
| | | // if (line.equipNo === station) { |
| | | // line.condition = eventData.inStock; |
| | | // } |
| | | // }) |
| | | // } |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | |
| | | margin-bottom: 10px; |
| | | } */ |
| | | .title { |
| | | height: 1800px; |
| | | height: auto; |
| | | margin-bottom: 50px; |
| | | } |
| | | |
| | | .cardWidth { |
| | |
| | | |
| | | .stackerDiv { |
| | | border: 1px solid rgba(0, 195, 255, 0.822); |
| | | width: 980px; |
| | | width: 2720px; |
| | | padding-left: 3px; |
| | | } |
| | | |
| | | .stackerDivCP { |
| | | border: 1px solid rgba(0, 195, 255, 0.822); |
| | | width: 2000px; |
| | | padding-left: 3px; |
| | | } |
| | | |
| | |
| | | height: 1px; |
| | | /* margin-top:180px; */ |
| | | background-color: #a0cfff; |
| | | }</style> |
| | | } |
| | | </style> |