From 03e68b2be24ea024eae645c47da1d4cb1773302a Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期五, 13 十月 2023 19:47:13 +0800
Subject: [PATCH] #
---
src/main/webapp/views/console.html | 1206 +++++++++++++++++++++++++++++++-------------------------
1 files changed, 671 insertions(+), 535 deletions(-)
diff --git a/src/main/webapp/views/console.html b/src/main/webapp/views/console.html
index 930628f..f03c349 100644
--- a/src/main/webapp/views/console.html
+++ b/src/main/webapp/views/console.html
@@ -1,552 +1,688 @@
<!DOCTYPE html>
<html lang="en">
-<!--5灞� 28鍒� 1120搴撲綅-->
-<head>
- <meta charset="UTF-8">
- <title>WCS鎺у埗涓績</title>
- <meta name="renderer" content="webkit">
- <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
- <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
- <link rel="stylesheet" type="text/css" href="../static/css/normalize.css">
- <link rel="stylesheet" type="text/css" href="../static/css/common.css">
- <link rel="stylesheet" type="text/css" href="../static/css/console.css">
- <script type="text/javascript" src="../static/js/jquery/jquery-3.3.1.min.js"></script>
- <script type="text/javascript" src="../static/js/common.js"></script>
- <script type="text/javascript" src="../static/js/layer/layer.js"></script>
- <style>
+ <head>
+ <meta charset="UTF-8">
+ <title>WCS鎺у埗涓績</title>
+ <link rel="stylesheet" href="../static/css/animate.min.css">
+ <link rel="stylesheet" href="../static/vue/element/element.css">
+ <link rel="stylesheet" href="../static/css/console_vue.css">
+ <link rel="stylesheet" href="../static/css/toggle-switch.css">
+ <script type="text/javascript" src="../static/js/jquery/jquery-3.3.1.min.js"></script>
+ <script type="text/javascript" src="../static/layui/layui.js"></script>
+ <script type="text/javascript" src="../static/js/handlebars/handlebars-v4.5.3.js"></script>
+ <script type="text/javascript" src="../static/js/common.js"></script>
+ <script type="text/javascript" src="../static/vue/js/vue.min.js"></script>
+ <script type="text/javascript" src="../static/vue/element/element.js"></script>
+ </head>
+ <body>
+ <div id="app">
+ <div style="display: flex;justify-content: center;align-items: center;width: 100%;margin-top: 150px;">
+ <div id="mapDataId" style="zoom: 0.7;position: relative;">
+ <div class="pointContainer" v-for="(row,index) in map" :key="index">
+ <div v-for="(col,idx) in row" :key="idx">
+ <div v-if="col.value == 0">
+ <!-- 瀛愯建閬� 璺緞涓虹┛姊溅棰勮璺緞鍒欐樉绀虹┛姊溅棰滆壊鍜岀┛姊溅鍙� -->
+ <div :style="{background: checkAdvancePath(index,idx).length == 0 ? '':shuttleColorList[checkAdvancePath(index,idx)[0]]}" class="item" v-if="col.data.length > 0">{{col.data}}</div>
+ <div :style="{background: checkAdvancePath(index,idx).length == 0 ? '':shuttleColorList[checkAdvancePath(index,idx)[0]]}" class="item" v-else>{{checkAdvancePath(index,idx).length == 0 ? idx:checkAdvancePath(index,idx)}}</div>
+ </div>
+ <div v-else-if="col.value == 3">
+ <!-- 姣嶈建閬� 璺緞涓虹┛姊溅棰勮璺緞鍒欐樉绀虹┛姊溅棰滆壊鍜岀┛姊溅鍙� -->
+ <div :style="{background: checkAdvancePath(index,idx).length == 0 ? '#5af':shuttleColorList[checkAdvancePath(index,idx)[0]]}" class="item">{{checkAdvancePath(index,idx).length == 0 ? '⇅⇄':checkAdvancePath(index,idx)}}</div>
+ </div>
+ <div v-else-if="col.value == 4">
+ <!-- 绔欑偣 -->
+ <div class="site" :id="'site-' + col.data" @click="openSite(col.data)">{{col.data}}</div>
+ </div>
+ <div v-else-if="col.value == 5">
+ <!-- 鍏呯數妗� -->
+ <div class="item" style="font-size: 24px">⚡</div>
+ </div>
+ <div v-else-if="col.value == -999">
+ <!-- 璺緞鍗犵敤鍖哄煙 -->
+ <div class="item" style="background:#f83333;color: #fff;">{{idx}}</div>
+ </div>
+ <div v-else-if="col.value < 0">
+ <!-- 绂佹鏄剧ず鍖哄煙 -->
+ <div class="item" style="visibility: hidden">{{idx}}</div>
+ </div>
+ <div v-else>
+ <div class="item" v-if="col.data.length > 0">{{col.data}}</div>
+ <div class="item" v-else>{{idx}}-{{col.value}}</div>
+ </div>
+ </div>
- </style>
-</head>
-<body>
-<header>
- <!-- 绯荤粺杩愯鐘舵�� -->
- <div class="system-state">
- <div id="system-icon" class="system-icon-open" onclick="systemSwitch()"></div>
- <span id="system-run-desc">绯荤粺杩愯涓�...</span>
- </div>
+ <div>
+ <!-- 鏄剧ず琛屽彿 -->
+ <div class="item" style="background: none;color: #000;">#{{index+1}}</div>
+ </div>
+ </div>
- <!-- 淇℃伅灞曠ず -->
- <div class="data-window">
- <!-- 鏍囬 -->
- <h1>鑷姩浠撳簱 WCS 鐩戞帶鍥�</h1>
+ <!--杈撳嚭灏忚溅-->
+ <div v-for="(car,idx) in currentLevShuttleList"
+ :style="{
+ left: getCarPosition(car.wcsPoint.x,car.wcsPoint.y)[1]
+ ,top: getCarPosition(car.wcsPoint.x,car.wcsPoint.y)[0]
+ ,color: shuttleColorList[car.shuttleNo]
+ }"
+ class="sxcar" :id="'sxcar-' + car.shuttleNo">
+ {{car.shuttleNo}}
+ </div>
- <!-- 棰滆壊鎻愮ず -->
- <div class="tips">
- <div class="tips-item">
- <label>鍫嗗灈鏈虹姸鎬侀鑹�: </label>
- <div class="item-group">
- <span class="machine-put">鍏ュ簱</span>
- <span class="machine-take">鍑哄簱</span>
- <span class="machine-stock-move">搴撳埌搴�</span>
- <span class="machine-site-move">绔欏埌绔�</span>
- <span class="machine-p-move">PToP</span>
- <span class="machine-error">寮傚父</span>
- <span class="machine-auto">鑷姩</span>
- <span class="machine-unauto">闈炶嚜鍔�/鎵嬪姩</span>
- </div>
- </div>
- <div class="tips-item">
- <label>杈撻�佽澶囩姸鎬侀鑹�: </label>
- <div class="item-group">
- <span class="site-auto-run-id">鑷姩+鏈夌墿+ID</span>
- <span class="site-auto-run">鑷姩+鏈夌墿</span>
- <span class="site-auto-id">鑷姩+ID</span>
- <span class="site-auto">鑷姩</span>
- <span class="site-unauto">闈炶嚜鍔�/鎵嬪姩</span>
- </div>
- </div>
- </div>
- </div>
+ </div>
- <!--鍒嗗壊绾�-->
- <!--<hr class="header-hr">-->
-</header>
-<main>
+ <!--杈撳嚭妤煎眰-->
+ <div style="height: 100%;">
+ <div class="floorBtnBox" v-for="(lev,idx) in floorList">
+ <el-button :style="{background:currentLev === lev ? '#7DCDFF':''}" @click="changFloor(lev)">{{lev}}F</el-button>
+ </div>
+ <div>
+ <el-button @click="testMove()">娴嬭瘯绉诲姩杞�</el-button>
+ <el-button @click="resetMap()">閲嶇疆鍦板浘</el-button>
+ </div>
+ </div>
+ </div>
- <!----------- 宸ュ叿鏍� ---------->
- <!-- 鍏ュ簱鍙� -->
- <div class="cargo-put"></div>
- <!-- 鎵爜鍣� -->
- <div id="code-decoder-1" class="code-decoder">
- <span id="code-decoder-data-1" class="code-decoder-data">0</span>
- </div>
+ <div class="footer">
+ <!-- 鎬诲紑鍏� -->
+ <div class="line-status">
+ <div class="body-head">鎬诲紑鍏�</div>
+ <div class="switch" @click="systemSwitch">
+ <label id="system-toggle" class="toggle-switch" style="margin-left: 20px;">
+ <input id="system-toggle-checked" disabled type="checkbox">
+ <div class="button">
+ <div class="light"></div>
+ <div class="dots"></div>
+ <div class="characters"></div>
+ <div class="shine"></div>
+ <div class="shadow"></div>
+ </div>
+ </label>
+ <div class="switch_r">
+ <p>绯荤粺鐘舵��</p>
+ <p id="system-run-desc">绯荤粺杩愯涓�</p>
+ </div>
+ </div>
+ </div>
+ <!-- 鍥涘悜绌挎杞︾姸鎬� -->
+ <div class="line-status">
+ <div class="body-head">绌挎杞︾姸鎬�</div>
+ <div class="shuttle-status-box">
+ <div v-for="(item,idx) in shuttleList" class="state">
+ <span :style="{color: shuttleColorList[item.shuttleNo]}">鍥涘悜绌挎杞� {{item.shuttleNo}}</span>
+ <span v-if="item.protocolStatus == 1"
+ class="state-ss shuttle-idle">{{item.protocolStatus$}}</span>
+ <span v-else-if="item.protocolStatus == 2"
+ class="state-ss shuttle-working">{{item.protocolStatus$}}</span>
+ <span v-else-if="item.protocolStatus == 3"
+ class="state-ss shuttle-waiting">{{item.protocolStatus$}}</span>
+ <span v-else-if="item.protocolStatus == 4"
+ class="state-ss shuttle-charging">{{item.protocolStatus$}}</span>
+ <span v-else-if="item.protocolStatus == 5"
+ class="state-ss shuttle-charging-waiting">{{item.protocolStatus$}}</span>
+ <span v-else-if="item.protocolStatus == 6"
+ class="state-ss shuttle-fixing">{{item.protocolStatus$}}</span>
+ <span v-else-if="item.protocolStatus == 7"
+ class="state-ss shuttle-offline">{{item.protocolStatus$}}</span>
+ <span v-else class="state-ss shuttle-offline">{{item.protocolStatus$}}</span>
+ </div>
+ </div>
+ <div class="allStatus"><span>鎵�鏈夌姸鎬�</span></div>
+ <div class="allStatus item-group">
+ <span class="shuttle-idle">绌洪棽</span>
+ <span class="shuttle-working">浣滀笟涓�</span>
+ <span class="shuttle-waiting">绛夊緟纭</span>
+ <span class="shuttle-charging">鍏呯數涓�</span>
+ <span class="shuttle-charging-waiting">鍏呯數浠诲姟绛夊緟纭</span>
+ <span class="shuttle-fixing">鏁呴殰淇涓�</span>
+ <span class="shuttle-offline">绂荤嚎</span>
+ </div>
+ </div>
+ <!-- 鎻愬崌鏈虹姸鎬� -->
+ <div class="line-status">
+ <div class="body-head">鎻愬崌鏈虹姸鎬�</div>
+ <div class="lift-status-box">
+ <div v-for="(item,idx) in liftList" class="state states">
+ <span>鎻愬崌鏈� {{item.liftNo}}</span>
+ <span v-if="item.protocolStatus == 1"
+ class="state-ss lift-idle">{{item.protocolStatus$}}</span>
+ <span v-else-if="item.protocolStatus == 2"
+ class="state-ss lift-working">{{item.protocolStatus$}}</span>
+ <span v-else-if="item.protocolStatus == 3"
+ class="state-ss lift-waiting">{{item.protocolStatus$}}</span>
+ <span v-else-if="item.protocolStatus == 4"
+ class="state-ss lift-offline">{{item.protocolStatus$}}</span>
+ <span v-else class="state-ss lift-offline">{{item.protocolStatus$}}</span>
+ </div>
+ </div>
+ <div class="allStatus"><span>鎵�鏈夌姸鎬�</span></div>
+ <div class="allStatus item-group">
+ <span class="lift-idle">绌洪棽</span>
+ <span class="lift-working">浣滀笟涓�</span>
+ <span class="lift-waiting">绛夊緟纭</span>
+ <span class="lift-offline">绂荤嚎</span>
+ </div>
+ </div>
+ <!-- 杈撻�佺嚎鐘舵�� -->
+ <div class="line-status">
+ <div class="body-head">杈撻�佺嚎鐘舵��</div>
+ <div class="state states">
+ <span>杩愯緭绾挎�绘暟</span>
+ <span class="line-ss">9</span>
+ </div>
+ <div class="allStatus"><span>鎵�鏈夌姸鎬�</span></div>
+ <div class="allStatus item-group">
+ <span class="site-auto-run-id">鑷姩+鏈夌墿+ID</span>
+ <span class="site-auto-run">鑷姩+鏈夌墿</span>
+ <span class="site-auto-id">鑷姩+ID</span>
+ <span class="site-auto">鑷姩</span>
+ <span class="site-unauto">闈炶嚜鍔�/鎵嬪姩</span>
+ </div>
+ </div>
+ <!-- 鏉$爜琛ㄦ牸 -->
+ <div class="bar-code">
+ <div class="body-head" id="code">鏉$爜鎵弿鍣�</div>
+ <div class="tablebox">
+ <div class="table-head">
+ <li><span>鏉$爜鍚嶇О</span><span class="right">鎵爜鏃堕棿</span></li>
+ </div>
+ <div id="barcode1" class="table-body">
+ <li v-for="(item,index) in codeList1" :key="index"><span>{{item.barcode}}</span><span class="right">{{item.time}}</span></li>
+ </div>
+ </div>
+ <div class="tablebox">
+ <div class="table-head">
+ <li><span>鏉$爜鍚嶇О</span><span class="right">鎵爜鏃堕棿</span></li>
+ </div>
+ <div id="barcode2" class="table-body">
+ <li v-for="(item,index) in codeList2" :key="index"><span>{{item.barcode}}</span><span class="right">{{item.time}}</span></li>
+ </div>
+ </div>
+ </div>
+ </div>
- <!-- 宸﹁緭閫佺嚎 -->
- <!-- 绗竴鍒楋紙瀹藉害 100px锛�-->
- <div class="site-row site-row-1">
- <div id="site-1" class="site" style="width: 80px; height: 50px;line-height: 50px">1[9999]</div>
- <div id="site-2" class="site" >2</div>
- <div id="site-3" class="site" style="width: 80px; height: 30px;line-height: 30px">3</div>
- <div id="site-4" class="site" style="width: 80px; height: 60px;line-height: 60px">4</div>
- <div id="site-5" class="site" style="width: 80px; height: 50px;line-height: 50px">5</div>
- <div id="site-6" class="site" >6</div>
- <div id="site-7" class="site" style="width: 80px; height: 68px;line-height: 68px">7</div>
- <div id="site-8" class="site" style="width: 80px; height: 42px;line-height: 40px">8</div>
- <div id="site-9" class="site" >9</div>
- </div>
- <!-- 绗簩鍒楋紙瀹藉害 100px锛� -->
- <div class="site-row site-row-2">
- <div id="site-32" class="site" style="width: 80px; height: 50px;line-height: 50px">32</div>
- <div id="site-31" class="site" >31</div>
- <div id="site-30" class="site" style="width: 80px; height: 30px;line-height: 30px;">30</div>
- <div id="site-23" class="site" >23</div>
- <div id="site-22" class="site" style="width: 80px; height: 50px;line-height: 50px">22</div>
- <div id="site-20" class="site" >20</div>
- <div id="site-19" class="site" style="width: 80px;">19</div>
- <div id="site-17" class="site" >17</div>
- <div id="site-16" class="site" style="width: 80px; height: 35px;line-height: 35px">16</div>
- <div id="site-15" class="site" style="width: 80px; height: 35px;line-height: 35px">15</div>
- <div id="site-13" class="site" >13</div>
- <div id="site-12" class="site" style="width: 80px;">12</div>
- <div id="site-10" class="site" >10</div>
- </div>
- <!-- 绗笁鍒楋紙瀹藉害 100px锛�-->
- <div class="site-row site-row-3">
- <div class="site-none" style="width: 80px; height: 50px;line-height: 50px"></div>
- <div id="site-29" class="site" style="width: 50px;">29</div>
- <div id="site-28" class="site" style="width: 50px;">28</div>
- <div class="site-none" style="width: 80px; height: 50px;line-height: 30px"></div>
- <div id="site-24" class="site" >24</div>
- </div>
- <!-- 绗洓鍒楋紙瀹藉害 100px锛�-->
- <div class="site-row site-row-4">
- <div class="site-none" style="width: 80px; height: 50px;line-height: 50px"></div>
- <div id="site-27" class="site" >27</div>
- <div id="site-26" class="site" style="width: 80px; height: 30px;line-height: 30px">26</div>
- <div id="site-25" class="site" >25</div>
- </div>
+ <!-- 杈撻�佽澶囧脊绐� -->
+ <div id="siteWindow" :style="{display:siteWindow?'block':'none'}" class="animate__animated animate__fadeIn">
+ <!-- 琛ㄥご -->
+ <div id="siteWindow-head">
+ <div class="detailed"></div>
+ <button @click="siteWindow = false"></button>
+ </div>
+ <!-- 琛ㄥ唴瀹� -->
+ <div class="siteWindow-body">
+ <form>
+ <!-- 璁惧鍙� -->
+ <div class="form-item">
+ <div class="form-item-label">
+ <span>璁惧鍙凤細</span>
+ </div>
+ <div class="form-item-input">
+ <input type="text" name="siteId" value="">
+ </div>
+ </div>
+ <!-- 宸ヤ綔鍙� -->
+ <div class="form-item">
+ <div class="form-item-label">
+ <span>宸ヤ綔鍙凤細</span>
+ </div>
+ <div class="form-item-input">
+ <input type="text" name="workNo" value="">
+ </div>
+ </div>
+ <!-- 宸ヤ綔鐘舵�� -->
+ <div class="form-item">
+ <div class="form-item-label">
+ <span>宸ヤ綔鐘舵�侊細</span>
+ </div>
+ <div class="form-item-input">
+ <input type="text" name="wrkSts" value="">
+ </div>
+ </div>
+ <div class="form-item">
+ <!-- 鑷姩 -->
+ <div class="form-item-checkbox">
+ <div class="form-item-label-checkbox">
+ <span>鑷姩</span>
+ </div>
+ <div class="form-item-input-checkbox">
+ <input type="checkbox" name="autoing">
+ </div>
+ </div>
+ <!-- 鏈夌墿 -->
+ <div class="form-item-checkbox">
+ <div class="form-item-label-checkbox">
+ <span>鏈夌墿</span>
+ </div>
+ <div class="form-item-input-checkbox">
+ <input type="checkbox" name="loading">
+ </div>
+ </div>
+ <!-- 鑳藉叆 -->
+ <div class="form-item-checkbox">
+ <div class="form-item-label-checkbox">
+ <span>鑳藉叆</span>
+ </div>
+ <div class="form-item-input-checkbox">
+ <input type="checkbox" name="canining">
+ </div>
+ </div>
+ <!-- 鑳藉嚭 -->
+ <div class="form-item-checkbox">
+ <div class="form-item-label-checkbox">
+ <span>鑳藉嚭</span>
+ </div>
+ <div class="form-item-input-checkbox">
+ <input type="checkbox" name="canouting">
+ </div>
+ </div>
+ </div>
+ <!-- 鍑哄叆绫诲瀷 -->
+ <div class="form-item">
+ <div class="form-item-label">
+ <span>鍑哄叆绫诲瀷锛�</span>
+ </div>
+ <div class="form-item-input">
+ <input type="text" name="ioType" value="">
+ </div>
+ </div>
+ <!-- 婧愮珯 -->
+ <div class="form-item">
+ <div class="form-item-label">
+ <span>婧愮珯锛�</span>
+ </div>
+ <div class="form-item-input">
+ <input type="text" name="sourceStaNo" value="">
+ </div>
+ </div>
+ <!-- 鐩爣绔� -->
+ <div class="form-item">
+ <div class="form-item-label">
+ <span>鐩爣绔欙細</span>
+ </div>
+ <div class="form-item-input">
+ <input type="text" name="staNo" value="">
+ </div>
+ </div>
+ <!-- 婧愬簱浣� -->
+ <div class="form-item">
+ <div class="form-item-label">
+ <span>婧愬簱浣嶏細</span>
+ </div>
+ <div class="form-item-input">
+ <input type="text" name="sourceLocNo" value="">
+ </div>
+ </div>
+ <!-- 鐩爣搴撲綅 -->
+ <div class="form-item">
+ <div class="form-item-label">
+ <span>鐩爣搴撲綅锛�</span>
+ </div>
+ <div class="form-item-input">
+ <input type="text" name="locNo" value="">
+ </div>
+ </div>
+ </form>
+ </div>
+ </div>
- <!-- 璐ф灦 + 鍫嗗灈鏈� + 鍏ュ簱绔欑偣 + 鍑哄簱绔欑偣 -->
- <div class="main-part">
- <!--绗簩鎺�-->
- <div class="lane">
- <span class="row-no">2#</span>
- <!-- 璐ф灦 -->
- <div class="stock-group">
- <div class="site site-none"> </div>
- <button class="item">1</button>
- <button class="item">2</button>
- <button class="item">3</button>
- <button class="item">4</button>
- <button class="item">5</button>
- <button class="item">6</button>
- <button class="item">7</button>
- <button class="item">8</button>
- <button class="item">9</button>
- <button class="item">10</button>
- <button class="item">11</button>
- <button class="item">12</button>
- <button class="item">13</button>
- <button class="item">14</button>
- <button class="item">15</button>
- <button class="item">16</button>
- <button class="item">17</button>
- <button class="item">18</button>
- <button class="item">19</button>
- <button class="item">20</button>
- <button class="item">21</button>
- <button class="item">22</button>
- <button class="item">23</button>
- <button class="item">24</button>
- <button class="item">25</button>
- <button class="item">26</button>
- <button class="item">27</button>
- <button class="item">28</button>
- <div class="site site-none"> </div>
- </div>
- <div class="stock-group">
- <div id="site-21" class="site">21</div>
- <button class="item">1</button>
- <button class="item">2</button>
- <button class="item">3</button>
- <button class="item">4</button>
- <button class="item">5</button>
- <button class="item">6</button>
- <button class="item">7</button>
- <button class="item">8</button>
- <button class="item">9</button>
- <button class="item">10</button>
- <button class="item">11</button>
- <button class="item">12</button>
- <button class="item">13</button>
- <button class="item">14</button>
- <button class="item">15</button>
- <button class="item">16</button>
- <button class="item">17</button>
- <button class="item">18</button>
- <button class="item">19</button>
- <button class="item">20</button>
- <button class="item">21</button>
- <button class="item">22</button>
- <button class="item">23</button>
- <button class="item">24</button>
- <button class="item">25</button>
- <button class="item">26</button>
- <button class="item">27</button>
- <button class="item">28</button>
- <div class="site site-none"> </div>
- </div>
- <!-- 鍫嗗灈鏈� -->
- <div class="crn">
- <hr class="pathway">
- <div id="crn1" class="machine"></div>
- </div>
- <!-- 璐ф灦 -->
- <div class="stock-group">
- <div id="site-18" class="site">18</div>
- <button class="item">1</button>
- <button class="item">2</button>
- <button class="item">3</button>
- <button class="item">4</button>
- <button class="item">5</button>
- <button class="item">6</button>
- <button class="item">7</button>
- <button class="item">8</button>
- <button class="item">9</button>
- <button class="item">10</button>
- <button class="item">11</button>
- <button class="item">12</button>
- <button class="item">13</button>
- <button class="item">14</button>
- <button class="item">15</button>
- <button class="item">16</button>
- <button class="item">17</button>
- <button class="item">18</button>
- <button class="item">19</button>
- <button class="item">20</button>
- <button class="item">21</button>
- <button class="item">22</button>
- <button class="item">23</button>
- <button class="item">24</button>
- <button class="item">25</button>
- <button class="item">26</button>
- <button class="item">27</button>
- <button class="item">28</button>
- <div class="site site-none"> </div>
- </div>
- <div class="stock-group">
- <div class="site site-none"> </div>
- <button class="item">1</button>
- <button class="item">2</button>
- <button class="item">3</button>
- <button class="item">4</button>
- <button class="item">5</button>
- <button class="item">6</button>
- <button class="item">7</button>
- <button class="item">8</button>
- <button class="item">9</button>
- <button class="item">10</button>
- <button class="item">11</button>
- <button class="item">12</button>
- <button class="item">13</button>
- <button class="item">14</button>
- <button class="item">15</button>
- <button class="item">16</button>
- <button class="item">17</button>
- <button class="item">18</button>
- <button class="item">19</button>
- <button class="item">20</button>
- <button class="item">21</button>
- <button class="item">22</button>
- <button class="item">23</button>
- <button class="item">24</button>
- <button class="item">25</button>
- <button class="item">26</button>
- <button class="item">27</button>
- <button class="item">28</button>
- <div class="site site-none"> </div>
- </div>
- </div>
+ </div>
+ <script>
+ var app = new Vue({
+ el: '#app',
+ data: {
+ map: [],//鍦板浘鏁版嵁
+ currentLev: 1,//鍦板浘褰撳墠妤煎眰
+ siteWindow: false, //绔欑偣寮圭獥鏄剧ず榛樿涓嶆樉绀�
+ floorList: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], //褰撳墠椤圭洰妤煎眰
+ shuttleList: [], //鍥涘悜绌挎杞﹂泦鍚�
+ currentLevShuttleList: [],//褰撳墠妤煎眰鍥涘悜绌挎杞﹂泦鍚�
+ shuttleColorList: [],//鍥涘悜绌挎杞﹂鑹查泦鍚�
+ liftList: [], //鎻愬崌鏈洪泦鍚�
+ systemStatus: true,//绯荤粺杩愯鐘舵��
+ consoleInterval: null,//瀹氭椂鍣ㄥ瓨鍌ㄥ彉閲�
+ codeList1: [],//鏉$爜List
+ codeList2: [],//鏉$爜List
+ },
+ created() {
+ this.init()
+ },
+ watch: {
- <!--绗竴鎺�-->
- <div class="lane">
- <!-- 璐ф灦 -->
- <div class="stock-group">
- <div class="site site-none"> </div>
- <button class="item">1</button>
- <button class="item">2</button>
- <button class="item">3</button>
- <button class="item">4</button>
- <button class="item">5</button>
- <button class="item">6</button>
- <button class="item">7</button>
- <button class="item">8</button>
- <button class="item">9</button>
- <button class="item">10</button>
- <button class="item">11</button>
- <button class="item">12</button>
- <button class="item">13</button>
- <button class="item">14</button>
- <button class="item">15</button>
- <button class="item">16</button>
- <button class="item">17</button>
- <button class="item">18</button>
- <button class="item">19</button>
- <button class="item">20</button>
- <button class="item">21</button>
- <button class="item">22</button>
- <button class="item">23</button>
- <button class="item">24</button>
- <button class="item">25</button>
- <button class="item">26</button>
- <button class="item">27</button>
- <button class="item">28</button>
- <div class="site site-none"> </div>
- </div>
- <div class="stock-group">
- <div id="site-14" class="site">14</div>
- <button class="item">1</button>
- <button class="item">2</button>
- <button class="item">3</button>
- <button class="item">4</button>
- <button class="item">5</button>
- <button class="item">6</button>
- <button class="item">7</button>
- <button class="item">8</button>
- <button class="item">9</button>
- <button class="item">10</button>
- <button class="item">11</button>
- <button class="item">12</button>
- <button class="item">13</button>
- <button class="item">14</button>
- <button class="item">15</button>
- <button class="item">16</button>
- <button class="item">17</button>
- <button class="item">18</button>
- <button class="item">19</button>
- <button class="item">20</button>
- <button class="item">21</button>
- <button class="item">22</button>
- <button class="item">23</button>
- <button class="item">24</button>
- <button class="item">25</button>
- <button class="item">26</button>
- <button class="item">27</button>
- <button class="item">28</button>
- <div class="site site-none"> </div>
- </div>
- <!-- 鍫嗗灈鏈� -->
- <div class="crn">
- <hr class="pathway">
- <div id="crn2" class="machine"></div>
- </div>
- <!-- 璐ф灦 -->
- <div class="stock-group">
- <div id="site-11" class="site">11</div>
- <button class="item">1</button>
- <button class="item">2</button>
- <button class="item">3</button>
- <button class="item">4</button>
- <button class="item">5</button>
- <button class="item">6</button>
- <button class="item">7</button>
- <button class="item">8</button>
- <button class="item">9</button>
- <button class="item">10</button>
- <button class="item">11</button>
- <button class="item">12</button>
- <button class="item">13</button>
- <button class="item">14</button>
- <button class="item">15</button>
- <button class="item">16</button>
- <button class="item">17</button>
- <button class="item">18</button>
- <button class="item">19</button>
- <button class="item">20</button>
- <button class="item">21</button>
- <button class="item">22</button>
- <button class="item">23</button>
- <button class="item">24</button>
- <button class="item">25</button>
- <button class="item">26</button>
- <button class="item">27</button>
- <button class="item">28</button>
- <div class="site site-none"> </div>
- </div>
- <div class="stock-group">
- <div class="site site-none"> </div>
- <button class="item">1</button>
- <button class="item">2</button>
- <button class="item">3</button>
- <button class="item">4</button>
- <button class="item">5</button>
- <button class="item">6</button>
- <button class="item">7</button>
- <button class="item">8</button>
- <button class="item">9</button>
- <button class="item">10</button>
- <button class="item">11</button>
- <button class="item">12</button>
- <button class="item">13</button>
- <button class="item">14</button>
- <button class="item">15</button>
- <button class="item">16</button>
- <button class="item">17</button>
- <button class="item">18</button>
- <button class="item">19</button>
- <button class="item">20</button>
- <button class="item">21</button>
- <button class="item">22</button>
- <button class="item">23</button>
- <button class="item">24</button>
- <button class="item">25</button>
- <button class="item">26</button>
- <button class="item">27</button>
- <button class="item">28</button>
- <div class="site site-none"> </div>
- </div>
- <span class="row-no">1#</span>
- </div>
- </div>
-</main>
-</body>
-<script>
- var systemRunning = true;
- var crn1Position = 0;
- var crn2Position = 0;
- // 鍒濆鍖�
- getSitesInfo();
- getCrnInfo();
- // 瀹炴椂璁块棶
- setInterval(function () {
- getCrnInfo();
- }, 500);
- setInterval(function () {
- getSitesInfo();
- }, 3000);
+ },
+ methods: {
+ init() {
+ this.getMap(this.currentLev)
+ this.getSystemRunningStatus() //鑾峰彇绯荤粺杩愯鐘舵��
- // 绯荤粺杩愯寮�鍏�
- function systemSwitch() {
- if (systemRunning){
- layer.prompt({title: '璇疯緭鍏ュ彛浠わ紝骞跺仠姝� WCS 绯荤粺', formType: 1}, function(pass, idx){
- layer.close(idx);
- if ("123"!==pass){
- alert("鍙d护閿欒");
- return;
- }
- var index = null;
- index = layer.load(1, {
- shade: [0.1,'#fff']
- });
- setTimeout(function () {
- if (systemRunning){
- $('#system-icon').attr("class", "system-icon-close");
- $('#system-run-desc').html("绯荤粺宸插仠姝�!");
- systemRunning = false;
- } else {
- $('#system-icon').attr("class", "system-icon-open");
- $('#system-run-desc').html("绯荤粺杩愯涓�...");
- systemRunning = true;
- }
- layer.close(index);
- }, 2000);
- });
+ this.consoleInterval = setInterval(() => {
+ this.getShuttleStateInfo() //鑾峰彇鍥涘悜绌挎杞︿俊鎭�
+ this.getLiftStateInfo() //鑾峰彇鎻愬崌鏈轰俊鎭�
+ this.getSiteInfo() //鑾峰彇杈撻�佺珯鐐规暟鎹�
+ this.getMap(this.currentLev) //鑾峰彇瀹炴椂鍦板浘鏁版嵁
+ this.getCodeData()//鑾峰彇鏉$爜
+ }, 1000)
+ },
+ //鑾峰彇鍦板浘鏁版嵁
+ getMap(lev) {
+ $.ajax({
+ type: "get",
+ url: baseUrl + "/console/map/" + lev + "/auth",
+ headers: {
+ 'token': localStorage.getItem('token')
+ },
+ success: (res) => {
+ let data = res.data
+ let tmp = []
+ for (let i = 1; i < data.length - 1; i++) {
+ tmp.push(data[i])
+ }
+ // console.log(tmp)
+ this.map = tmp
+ }
+ })
+ },
+ openSite(id) {
+ this.siteWindow = true; //鎵撳紑绔欑偣淇℃伅寮圭獥
+ $(".detailed").empty();
+ $('.detailed').append(id + '绔欑偣璇︾粏淇℃伅');
+ $.ajax({
+ url: baseUrl + "/console/site/detail",
+ headers: {
+ 'token': localStorage.getItem('token')
+ },
+ data: {
+ siteId: id
+ },
+ method: 'post',
+ success: function(res) {
+ for (var val in res.data) {
+ var find = $("#siteWindow").find(":input[name='" + val + "']");
+ if (find[0].type === 'text') {
+ find.val(res.data[val]);
+ } else if (find[0].type === 'checkbox') {
+ find.attr("checked", res.data[val] === 'Y');
+ }
+ }
+ }
- } else {
- var index = null;
- index = layer.load(1, {
- shade: [0.1,'#fff']
- });
- setTimeout(function () {
- if (systemRunning){
- $('#system-icon').attr("class", "system-icon-close");
- $('#system-run-desc').html("绯荤粺宸插仠姝�!");
- systemRunning = false;
- } else {
- $('#system-icon').attr("class", "system-icon-open");
- $('#system-run-desc').html("绯荤粺杩愯涓�...");
- systemRunning = true;
- }
- layer.close(index);
- }, 2000);
- }
- }
+ })
+ },
+ getSiteInfo() {
+ //鑾峰彇杈撻�佺珯鐐规暟鎹�
+ $.ajax({
+ url: baseUrl+ "/console/latest/data/site",
+ headers: {'token': localStorage.getItem('token')},
+ method: 'POST',
+ success: function (res) {
+ if (res.code === 200){
+ var sites = res.data;
+ for (var i = 0; i < sites.length; i++){
+ var siteEl = $("#site-"+sites[i].siteId);
+ siteEl.attr("class", "site " + sites[i].siteStatus);
+ if (sites[i].workNo != null && sites[i].workNo>0) {
+ siteEl.html(sites[i].siteId + "[" + sites[i].workNo + "]");
+ } else {
+ siteEl.html(sites[i].siteId);
+ }
+ }
+ } else if (res.code === 403){
+ parent.location.href = baseUrl+"/login";
+ } else {
+ console.log(res.msg);
+ }
+ }
+ });
+ },
+ changFloor(lev) {
+ this.currentLev = lev
+ this.currentLevShuttleList = []
+ this.getMap(lev)
+ },
+ getShuttleStateInfo() {
+ // 鍥涘悜绌挎杞︿俊鎭〃鑾峰彇
+ let that = this
+ $.ajax({
+ url: baseUrl + "/shuttle/table/shuttle/state",
+ headers: {
+ 'token': localStorage.getItem('token')
+ },
+ method: 'POST',
+ success: function(res) {
+ if (res.code == 200) {
+ let currentLevShuttle = []//褰撳墠妤煎眰灏忚溅闆嗗悎
+ res.data.forEach((item,idx) => {
+ if (item != null && item.point != undefined && item.point != null) {
+ if (item.point.z == that.currentLev) {
+ currentLevShuttle.push(item);
+ }
+ }
+ })
+ that.currentLevShuttleList = currentLevShuttle
+ that.shuttleList = res.data
- // 杈撻�佽澶囧疄鏃舵暟鎹幏鍙�
- function getSitesInfo(){
- $.ajax({
- url: baseUrl+ "/console/latest/data/site",
- headers: {'token': localStorage.getItem('token')},
- method: 'POST',
- success: function (res) {
- if (res.code === 200){
- var sites = res.data;
- for (var i = 0; i < sites.length; i++){
- $("#site-"+sites[i].siteId).attr("class", "site " + sites[i].siteStatus);
- }
- } else if (res.code === 403){
- top.location.href = baseUrl+"/login";
- } else {
- alert(res.msg);
- }
- }
- });
- }
+ if (that.shuttleColorList.length == 0) {
+ let colorList = []//闅忔満灏忚溅棰滆壊
+ res.data.forEach((item,idx) => {
+ colorList[item.shuttleNo] = that.colorRGB()
+ })
+ that.shuttleColorList = colorList
+ }
+ }
+ }
+ });
+ },
+ getLiftStateInfo() {
+ // 鎻愬崌鏈轰俊鎭〃鑾峰彇
+ let that = this
+ $.ajax({
+ url: baseUrl + "/lift/table/lift/state",
+ headers: {
+ 'token': localStorage.getItem('token')
+ },
+ method: 'POST',
+ success: function(res) {
+ if (res.code == 200) {
+ that.liftList = res.data
+ }
+ }
+ });
+ },
+ systemSwitch() {
+ // 绯荤粺寮�鍏�
+ let that = this
+ if (this.systemStatus) {
+ this.$prompt('璇疯緭鍏ュ彛浠わ紝骞跺仠姝CS绯荤粺', '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ }).then(({
+ value
+ }) => {
+ that.doSwitch(0, value)
+ }).catch(() => {
- // 鍫嗗灈鏈哄疄鏃舵暟鎹幏鍙�
- function getCrnInfo(){
- $.ajax({
- url: baseUrl+ "/console/latest/data/crn",
- headers: {'token': localStorage.getItem('token')},
- method: 'POST',
- success: function (res) {
- if (res.code === 200){
- var crns = res.data;
- for (var i = 0; i < crns.length; i++){
- crnAnimate(crns[i].crnId, crns[i].offset);
- }
- } else if (res.code === 403){
- top.location.href = baseUrl+"/login";
- } else {
- alert(res.msg);
- }
- }
- });
- }
+ });
+ } else {
+ this.doSwitch(1)
+ }
+ },
+ doSwitch(operatorType, password) {
+ let that = this
+ $.ajax({
+ url: baseUrl + "/console/system/switch",
+ headers: {
+ 'token': localStorage.getItem('token')
+ },
+ data: {
+ operatorType: operatorType,
+ password: password
+ },
+ method: 'POST',
+ success: function(res) {
+ if (res.code === 200) {
+ if (res.data.status) {
+ $('#system-toggle-checked').attr("checked", true);
+ $('#system-run-desc').html("绯荤粺杩愯涓�...");
+ that.systemStatus = true;
+ parent.systemRunning = true;
+ } else {
+ $('#system-toggle-checked').attr("checked", false);
+ $('#system-run-desc').html("绯荤粺宸插仠姝�!");
+ that.systemStatus = false;
+ parent.systemRunning = false;
+ }
+ } else if (res.code === 403) {
+ parent.location.href = baseUrl + "/login";
+ } else {
+ that.$message({
+ message: res.msg,
+ type: 'error'
+ });
+ }
+ }
+ });
+ },
+ getSystemRunningStatus() {
+ // 鑾峰彇wcs绯荤粺杩愯鐘舵��
+ let that = this
+ $.ajax({
+ url: baseUrl + "/console/system/running/status",
+ headers: {
+ 'token': localStorage.getItem('token')
+ },
+ method: 'POST',
+ success: function(res) {
+ if (res.code === 200) {
+ if (res.data.status) {
+ $('#system-toggle-checked').attr("checked", true);
+ $('#system-run-desc').html("绯荤粺杩愯涓�...");
+ that.systemStatus = true;
+ parent.systemRunning = true;
+ } else {
+ $('#system-toggle-checked').attr("checked", false);
+ $('#system-run-desc').html("绯荤粺宸插仠姝�!");
+ that.systemStatus = false;
+ parent.systemRunning = false;
+ }
+ } else if (res.code === 403) {
+ parent.location.href = baseUrl + "/login";
+ } else {
+ that.$message({
+ message: res.msg,
+ type: 'error'
+ });
+ }
+ }
+ });
+ },
+ getCarPosition(x,y) {
+ //璁$畻鍥涘悜绌挎杞﹀浘鏍囦綅缃�
+ let top = (x * 35 - 35) + "px" //闇�瑕佸噺鍘诲皬杞﹁嚜宸辨墍鍗犻珮搴�
+ let left = (y * 35) + "px" //闇�瑕佸噺鍘诲皬杞﹁嚜宸辨墍鍗犲搴�
+ return [top,left];
+ },
+ testMove() {
+ let that = this
+ clearInterval(this.consoleInterval)//娓呯悊瀹氭椂鍣�
- // 鎵爜鍣ㄥ疄鏃舵暟鎹幏鍙�
- function getBarcodeInfo(){
- $.ajax({
- url: baseUrl+ "/console/latest/data/barcode",
- headers: {'token': localStorage.getItem('token')},
- method: 'POST',
- success: function (res) {
- if (res.code === 200){
+ let shuttleList = this.currentLevShuttleList
+ $.ajax({
+ url: baseUrl + "/static/testMoveData.json",
+ headers: {
+ 'token': localStorage.getItem('token')
+ },
+ method: 'GET',
+ success: function(res) {
+ shuttleList[0].moveAdvancePath = res
+ that.currentLevShuttleList = shuttleList
- } else if (res.code === 403){
- top.location.href = baseUrl+"/login";
- } else {
- alert(res.msg);
- }
- }
- });
- }
-
- // 鍫嗗灈鏈哄亸绉诲姩鐢�
- function crnAnimate(id, leftVal) {
- switch (id) {
- case 1:
- $("#crn1").animate({left: leftVal+'px'}, 1000);
- crn1Position = leftVal;
- break;
- case 2:
- $("#crn2").animate({left: leftVal+'px'}, 1000);
- crn2Position = leftVal;
- break;
- default:
- break
- }
- }
-
- // 璐ф灦鐐瑰嚮浜嬩欢
- $('.item').on('click', function () {
- layer.open({
- type: 1,
- shadeClose: true, //鐐瑰嚮閬僵鍏抽棴灞�
- content: 'text'
- });
- });
-
-</script>
-</html>
\ No newline at end of file
+ let index = 0
+ let tmp = null
+ tmp = setInterval(() => {
+ if (index < res.length) {
+ that.currentLevShuttleList[0].wcsPoint.y = res[index].y
+ that.currentLevShuttleList[0].wcsPoint.x = res[index].x
+ index++
+ }else {
+ clearInterval(tmp)
+ that.init()
+ }
+ },1000)
+ }
+ });
+ },
+ colorRGB(){
+ //闅忔満棰滆壊
+ const r = Math.floor(Math.random()*256);
+ const g = Math.floor(Math.random()*256);
+ const b = Math.floor(Math.random()*256);
+ return `rgb(${r},${g},${b})`;
+ },
+ checkAdvancePath(x,y) {
+ //妫�娴嬭矾寰勬槸鍚︿负绌挎杞﹂璁¤矾寰勶紝濡倄鍜寉璺緞鏄┛姊溅棰勮璺緞锛屽垯杩斿洖灏忚溅鍙�
+ this.currentLevShuttleList.forEach((item,idx) => {
+ if (item.moveAdvancePath != null) {
+ item.moveAdvancePath.forEach((path,index) => {
+ if (path.x === x && path.y === y) {
+ return item.shuttleNo;
+ }
+ })
+ }
+ })
+ let data = []
+ let shuttleList = this.currentLevShuttleList;
+ for (var i = 0; i < shuttleList.length; i++) {
+ let shuttle = shuttleList[i]
+ let moveAdvancePath = shuttle.moveAdvancePath
+ if (moveAdvancePath != null) {
+ for (var j = 0; j < moveAdvancePath.length; j++) {
+ let path = moveAdvancePath[j]
+ if (path.x-1 === x && path.y === y) {//璺緞绗﹀悎
+ data.push(shuttle.shuttleNo)
+ continue;
+ }
+ }
+ }
+ }
+ return data;//杩斿洖灏忚溅鍙烽泦鍚�
+ },
+ resetMap() {
+ //閲嶇疆鍦板浘
+ let that = this
+ $.ajax({
+ url:baseUrl+"/console/map/resetMap/auth",
+ headers:{
+ 'token': localStorage.getItem('token')
+ },
+ data:{},
+ method:'get',
+ success:function (res) {
+ that.$message({
+ message: '閲嶇疆瀹屾垚',
+ type: 'success'
+ });
+ }
+ })
+ },
+ getCodeData(){
+ let that = this
+ $.ajax({
+ url:baseUrl +'/console/barcode/output/site',
+ method:'GET',
+ success:function (res) {
+ if(res.code === 200){
+ let data = JSON.parse(res.data)
+ if(data.length<=5){
+ that.codeList1 = data
+ } else {
+ tData1 = data.slice(0,5)
+ tData2 = data.splice(5,10)
+ }
+ }
+ }
+ })
+ }
+ }
+ })
+ </script>
+ </body>
+</html>
--
Gitblit v1.9.1