| | |
| | | <!DOCTYPE html> |
| | | <html> |
| | | <head> |
| | | <meta charset="utf-8"> |
| | | <title>WCS控制中心</title> |
| | | <!--<link rel="stylesheet" type="text/css" href="../static/css/common.css">--> |
| | | <link rel="stylesheet" href="../static/css/console.css"> |
| | | <!-- <link rel="stylesheet" type="text/css" href="../static/css/normalize.css">--> |
| | | <link rel="stylesheet" href="../static/css/animate.min.css"> |
| | | <html lang="en"> |
| | | <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> |
| | | |
| | | <div> |
| | | <!-- 显示行号 --> |
| | | <div class="item" style="background: none;color: #000;">#{{index+1}}</div> |
| | | </div> |
| | | </div> |
| | | |
| | | <script src="../static/js/jquery/jquery-3.3.1.min.js"></script> |
| | | <script src="../static/js/layer/layer.js"></script> |
| | | <script type="text/javascript" src="../static/js/common.js"></script> |
| | | <!--输出小车--> |
| | | <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> |
| | | |
| | | </head> |
| | | <body> |
| | | <div id="root"> |
| | | <div class="head"> |
| | | <h1>自动仓库WCS监控图</h1> |
| | | <h6>AUTOMATIC WAREHOUSE WCS MONITORING DIAGRAM</h6> |
| | | </div> |
| | | <!--第1列(宽度 70px) --> |
| | | <div class="site-row site-row-1"> |
| | | <div class="site-k" style="height:39px;width:70px;"></div> |
| | | <div id="site-173" class="site" style="height: 18px;line-height: 18px;margin-bottom: 85px">173</div> |
| | | </div> |
| | | <!--第2列(宽度 70px)--> |
| | | <div class="site-row site-row-2"> |
| | | <div id="site-175" class="site" style="height: 18px;line-height: 18px;">175</div> |
| | | <div id="site-174" class="site" style="height: 19px;line-height: 19px;">174</div> |
| | | <div id="site-172" class="site" style="height: 18px;line-height: 18px;">172</div> |
| | | <div class="site-k" style="height: 246px;width:70px;"></div> |
| | | <div id="site-182" class="site" style="height: 18px;line-height: 18px;">182</div> |
| | | </div> |
| | | <!-- 第3列(宽度 70px) --> |
| | | <div class="site-row site-row-3"> |
| | | <div id="site-176" class="site" style="height: 18px;line-height: 18px;width:162px;">176</div> |
| | | <div class="site-k" style="height: 19px;width:162px;"></div> |
| | | <div> |
| | | <div id="site-171" class="site" style="height: 18px;line-height: 18px;position: absolute;clear: right">171</div> |
| | | <div id="site-170" class="site" style="height: 18px;line-height: 18px;width:80px;float: right">170</div> |
| | | </div> |
| | | <div class="site-k" style="height: 246px;width:70px;"></div> |
| | | <div> |
| | | <div id="site-181" class="site" style="height: 18px;line-height: 18px;position: absolute;clear: right">181</div> |
| | | <div id="site-180" class="site" style="height: 18px;line-height: 18px;width:80px;float: right">180</div> |
| | | </div> |
| | | </div> |
| | | |
| | | </div> |
| | | <!-- 第4列(宽度 70px 140px) --> |
| | | <!--输出楼层--> |
| | | <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> |
| | | |
| | | <!--<!– 第5列(宽度 70px) –>--> |
| | | <div class="site-row site-row-5"> |
| | | <div id="site-163" class="site" style="height: 28.5px;line-height: 28.5px">163</div> |
| | | <div id="site-162" class="site" style="height: 28.5px;line-height: 28.5px">162</div> |
| | | <div id="site-161" class="site" style="height: 71px;line-height: 71px">161</div> |
| | | <div id="site-160" class="site" style="height: 28.5px;line-height: 28.5px">160</div> |
| | | <div id="site-159" class="site" style="height: 28.5px;line-height: 28.5px">159</div> |
| | | <div id="site-158" class="site" style="height: 71px;line-height: 71px">158</div> |
| | | <div id="site-157" class="site" style="height: 28.5px;line-height: 28.5px">157</div> |
| | | <div id="site-156" class="site" style="height: 28.5px;line-height: 28.5px">156</div> |
| | | <div id="site-155" class="site" style="height: 71px;line-height: 71px">155</div> |
| | | <div id="site-154" class="site" style="height: 28.5px;line-height: 28.5px">154</div> |
| | | <div id="site-153" class="site" style="height: 28.5px;line-height: 28.5px">153</div> |
| | | <div id="site-152" class="site" style="height: 71px;line-height: 71px">152</div> |
| | | <div id="site-151" class="site" style="height: 28.5px;line-height: 28.5px">151</div> |
| | | <div id="site-150" class="site" style="height: 28.5px;line-height: 28.5px">150</div> |
| | | </div> |
| | | <!--<!– 第6列(宽度 70px) –>--> |
| | | <div class="site-row site-row-6"> |
| | | <div id="site-120" class="site" style="height: 28.5px;line-height: 28.5px">120</div> |
| | | <div id="site-121" class="site" style="height: 28.5px;line-height: 28.5px">121</div> |
| | | <div id="site-122" class="site" style="height: 71px;line-height: 71px">122</div> |
| | | <div id="site-123" class="site" style="height: 28.5px;line-height: 28.5px">123</div> |
| | | <div id="site-124" class="site" style="height: 28.5px;line-height: 28.5px">124</div> |
| | | <div id="site-125" class="site" style="height: 71px;line-height: 71px">125</div> |
| | | <div id="site-126" class="site" style="height: 28.5px;line-height: 28.5px">126</div> |
| | | <div id="site-127" class="site" style="height: 28.5px;line-height: 28.5px">127</div> |
| | | <div id="site-128" class="site" style="height: 71px;line-height: 71px">128</div> |
| | | <div id="site-129" class="site" style="height: 28.5px;line-height: 28.5px">129</div> |
| | | <div id="site-130" class="site" style="height: 28.5px;line-height: 28.5px">130</div> |
| | | <div id="site-131" class="site" style="height: 71px;line-height: 71px">131</div> |
| | | <div id="site-132" class="site" style="height: 28.5px;line-height: 28.5px">132</div> |
| | | <div id="site-133" class="site" style="height: 28.5px;line-height: 28.5px">133</div> |
| | | </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="main-part"> |
| | | <!-- 第一组 --> |
| | | <div class="lane"> |
| | | <!-- 货架 --> |
| | | <div class="stock-group"> |
| | | <button class="item" style="margin-left: 82px">2</button> |
| | | <button class="item">4</button> |
| | | <button class="item">6</button> |
| | | <button class="item">8</button> |
| | | <button class="item">10</button> |
| | | <button class="item">12</button> |
| | | <button class="item">14</button> |
| | | <button class="item">16</button> |
| | | <button class="item">18</button> |
| | | <button class="item">20</button> |
| | | <button class="item">22</button> |
| | | <button class="item">24</button> |
| | | <button class="item">26</button> |
| | | <button class="item">28</button> |
| | | <button class="item">30</button> |
| | | <button class="item">32</button> |
| | | <button class="item">34</button> |
| | | <button class="item">36</button> |
| | | <button class="item">38</button> |
| | | <button class="item">40</button> |
| | | <button class="item">42</button> |
| | | <button class="item">44</button> |
| | | <button class="item">46</button> |
| | | <button class="item">48</button> |
| | | <button class="item">50</button> |
| | | <button class="item">52</button> |
| | | <button class="item">54</button> |
| | | <button class="item">56</button> |
| | | <button class="item">58</button> |
| | | <button class="item">60</button> |
| | | <button class="item">62</button> |
| | | <button class="item">64</button> |
| | | <button class="item">66</button> |
| | | <button class="item">68</button> |
| | | <button class="item">70</button> |
| | | <span class="row-no">1#</span> |
| | | </div> |
| | | <div class="stock-group"> |
| | | <div id="site-100" class="site" style="">100</div> |
| | | <button class="item">2</button> |
| | | <button class="item">4</button> |
| | | <button class="item">6</button> |
| | | <button class="item">8</button> |
| | | <button class="item">10</button> |
| | | <button class="item">12</button> |
| | | <button class="item">14</button> |
| | | <button class="item">16</button> |
| | | <button class="item">18</button> |
| | | <button class="item">20</button> |
| | | <button class="item">22</button> |
| | | <button class="item">24</button> |
| | | <button class="item">26</button> |
| | | <button class="item">28</button> |
| | | <button class="item">30</button> |
| | | <button class="item">32</button> |
| | | <button class="item">34</button> |
| | | <button class="item">36</button> |
| | | <button class="item">38</button> |
| | | <button class="item">40</button> |
| | | <button class="item">42</button> |
| | | <button class="item">44</button> |
| | | <button class="item">46</button> |
| | | <button class="item">48</button> |
| | | <button class="item">50</button> |
| | | <button class="item">52</button> |
| | | <button class="item">54</button> |
| | | <button class="item">56</button> |
| | | <button class="item">58</button> |
| | | <button class="item">60</button> |
| | | <button class="item">62</button> |
| | | <button class="item">64</button> |
| | | <button class="item">66</button> |
| | | <button class="item">68</button> |
| | | <button class="item">70</button> |
| | | <span class="row-no">2#</span> |
| | | </div> |
| | | <!-- 堆垛机 --> |
| | | <div class="crn"> |
| | | <hr class="pathway"> |
| | | <div id="crn-1" class="machine"></div> |
| | | </div> |
| | | <!-- 货架 --> |
| | | <div class="stock-group"> |
| | | <div id="site-101" class="site" style="">101</div> |
| | | <button class="item">2</button> |
| | | <button class="item">4</button> |
| | | <button class="item">6</button> |
| | | <button class="item">8</button> |
| | | <button class="item">10</button> |
| | | <button class="item">12</button> |
| | | <button class="item">14</button> |
| | | <button class="item">16</button> |
| | | <button class="item">18</button> |
| | | <button class="item">20</button> |
| | | <button class="item">22</button> |
| | | <button class="item">24</button> |
| | | <button class="item">26</button> |
| | | <button class="item">28</button> |
| | | <button class="item">30</button> |
| | | <button class="item">32</button> |
| | | <button class="item">34</button> |
| | | <button class="item">36</button> |
| | | <button class="item">38</button> |
| | | <button class="item">40</button> |
| | | <button class="item">42</button> |
| | | <button class="item">44</button> |
| | | <button class="item">46</button> |
| | | <button class="item">48</button> |
| | | <button class="item">50</button> |
| | | <button class="item">52</button> |
| | | <button class="item">54</button> |
| | | <button class="item">56</button> |
| | | <button class="item">58</button> |
| | | <button class="item">60</button> |
| | | <button class="item">62</button> |
| | | <button class="item">64</button> |
| | | <button class="item">66</button> |
| | | <button class="item">68</button> |
| | | <button class="item">70</button> |
| | | <span class="row-no">3#</span> |
| | | </div> |
| | | <div class="stock-group"> |
| | | <button class="item" style="margin-left: 82px">2</button> |
| | | <button class="item">4</button> |
| | | <button class="item">6</button> |
| | | <button class="item">8</button> |
| | | <button class="item">10</button> |
| | | <button class="item">12</button> |
| | | <button class="item">14</button> |
| | | <button class="item">16</button> |
| | | <button class="item">18</button> |
| | | <button class="item">20</button> |
| | | <button class="item">22</button> |
| | | <button class="item">24</button> |
| | | <button class="item">26</button> |
| | | <button class="item">28</button> |
| | | <button class="item">30</button> |
| | | <button class="item">32</button> |
| | | <button class="item">34</button> |
| | | <button class="item">36</button> |
| | | <button class="item">38</button> |
| | | <button class="item">40</button> |
| | | <button class="item">42</button> |
| | | <button class="item">44</button> |
| | | <button class="item">46</button> |
| | | <button class="item">48</button> |
| | | <button class="item">50</button> |
| | | <button class="item">52</button> |
| | | <button class="item">54</button> |
| | | <button class="item">56</button> |
| | | <button class="item">58</button> |
| | | <button class="item">60</button> |
| | | <button class="item">62</button> |
| | | <button class="item">64</button> |
| | | <button class="item">66</button> |
| | | <button class="item">68</button> |
| | | <button class="item">70</button> |
| | | <span class="row-no">4#</span> |
| | | </div> |
| | | </div> |
| | | <!-- 第二组 --> |
| | | <div class="lane"> |
| | | <span class="row-no"></span> |
| | | <!-- 货架 --> |
| | | <div class="stock-group"> |
| | | <div class="site" style="background-color: rgb(108,167,168)"></div> |
| | | <button class="item">2</button> |
| | | <button class="item">4</button> |
| | | <button class="item">6</button> |
| | | <button class="item">8</button> |
| | | <button class="item">10</button> |
| | | <button class="item">12</button> |
| | | <button class="item">14</button> |
| | | <button class="item">16</button> |
| | | <button class="item">18</button> |
| | | <button class="item">20</button> |
| | | <button class="item">22</button> |
| | | <button class="item">24</button> |
| | | <button class="item">26</button> |
| | | <button class="item">28</button> |
| | | <button class="item">30</button> |
| | | <button class="item">32</button> |
| | | <button class="item">34</button> |
| | | <button class="item">36</button> |
| | | <button class="item">38</button> |
| | | <button class="item">40</button> |
| | | <button class="item">42</button> |
| | | <button class="item">44</button> |
| | | <button class="item">46</button> |
| | | <button class="item">48</button> |
| | | <button class="item">50</button> |
| | | <button class="item">52</button> |
| | | <button class="item">54</button> |
| | | <button class="item">56</button> |
| | | <button class="item">58</button> |
| | | <button class="item">60</button> |
| | | <button class="item">62</button> |
| | | <button class="item">64</button> |
| | | <button class="item">66</button> |
| | | <button class="item">68</button> |
| | | <button class="item">70</button> |
| | | <span class="row-no">5#</span> |
| | | </div> |
| | | <div class="stock-group"> |
| | | <div id="site-102" class="site" style="">102</div> |
| | | <button class="item">2</button> |
| | | <button class="item">4</button> |
| | | <button class="item">6</button> |
| | | <button class="item">8</button> |
| | | <button class="item">10</button> |
| | | <button class="item">12</button> |
| | | <button class="item">14</button> |
| | | <button class="item">16</button> |
| | | <button class="item">18</button> |
| | | <button class="item">20</button> |
| | | <button class="item">22</button> |
| | | <button class="item">24</button> |
| | | <button class="item">26</button> |
| | | <button class="item">28</button> |
| | | <button class="item">30</button> |
| | | <button class="item">32</button> |
| | | <button class="item">34</button> |
| | | <button class="item">36</button> |
| | | <button class="item">38</button> |
| | | <button class="item">40</button> |
| | | <button class="item">42</button> |
| | | <button class="item">44</button> |
| | | <button class="item">46</button> |
| | | <button class="item">48</button> |
| | | <button class="item">50</button> |
| | | <button class="item">52</button> |
| | | <button class="item">54</button> |
| | | <button class="item">56</button> |
| | | <button class="item">58</button> |
| | | <button class="item">60</button> |
| | | <button class="item">62</button> |
| | | <button class="item">64</button> |
| | | <button class="item">66</button> |
| | | <button class="item">68</button> |
| | | <button class="item">70</button> |
| | | <span class="row-no">6#</span> |
| | | </div> |
| | | <!-- 堆垛机 --> |
| | | <div class="crn"> |
| | | <hr class="pathway"> |
| | | <div id="crn-2" class="machine"></div> |
| | | </div> |
| | | <!-- 货架 --> |
| | | <div class="stock-group"> |
| | | <div id="site-103" class="site" style="">103</div> |
| | | <button class="item">2</button> |
| | | <button class="item">4</button> |
| | | <button class="item">6</button> |
| | | <button class="item">8</button> |
| | | <button class="item">10</button> |
| | | <button class="item">12</button> |
| | | <button class="item">14</button> |
| | | <button class="item">16</button> |
| | | <button class="item">18</button> |
| | | <button class="item">20</button> |
| | | <button class="item">22</button> |
| | | <button class="item">24</button> |
| | | <button class="item">26</button> |
| | | <button class="item">28</button> |
| | | <button class="item">30</button> |
| | | <button class="item">32</button> |
| | | <button class="item">34</button> |
| | | <button class="item">36</button> |
| | | <button class="item">38</button> |
| | | <button class="item">40</button> |
| | | <button class="item">42</button> |
| | | <button class="item">44</button> |
| | | <button class="item">46</button> |
| | | <button class="item">48</button> |
| | | <button class="item">50</button> |
| | | <button class="item">52</button> |
| | | <button class="item">54</button> |
| | | <button class="item">56</button> |
| | | <button class="item">58</button> |
| | | <button class="item">60</button> |
| | | <button class="item">62</button> |
| | | <button class="item">64</button> |
| | | <button class="item">66</button> |
| | | <button class="item">68</button> |
| | | <button class="item">70</button> |
| | | <span class="row-no">7#</span> |
| | | </div> |
| | | <div class="stock-group"> |
| | | <div class="site" style="background-color: rgb(108,167,168)"></div> |
| | | <button class="item">2</button> |
| | | <button class="item">4</button> |
| | | <button class="item">6</button> |
| | | <button class="item">8</button> |
| | | <button class="item">10</button> |
| | | <button class="item">12</button> |
| | | <button class="item">14</button> |
| | | <button class="item">16</button> |
| | | <button class="item">18</button> |
| | | <button class="item">20</button> |
| | | <button class="item">22</button> |
| | | <button class="item">24</button> |
| | | <button class="item">26</button> |
| | | <button class="item">28</button> |
| | | <button class="item">30</button> |
| | | <button class="item">32</button> |
| | | <button class="item">34</button> |
| | | <button class="item">36</button> |
| | | <button class="item">38</button> |
| | | <button class="item">40</button> |
| | | <button class="item">42</button> |
| | | <button class="item">44</button> |
| | | <button class="item">46</button> |
| | | <button class="item">48</button> |
| | | <button class="item">50</button> |
| | | <button class="item">52</button> |
| | | <button class="item">54</button> |
| | | <button class="item">56</button> |
| | | <button class="item">58</button> |
| | | <button class="item">60</button> |
| | | <button class="item">62</button> |
| | | <button class="item">64</button> |
| | | <button class="item">66</button> |
| | | <button class="item">68</button> |
| | | <button class="item">70</button> |
| | | <span class="row-no">8#</span> |
| | | </div> |
| | | </div> |
| | | <!--第三组--> |
| | | <div class="lane"> |
| | | <span class="row-no"></span> |
| | | <!-- 货架 --> |
| | | <div class="stock-group"> |
| | | <button class="item" style="margin-left: 82px">2</button> |
| | | <button class="item">4</button> |
| | | <button class="item">6</button> |
| | | <button class="item">8</button> |
| | | <button class="item">10</button> |
| | | <button class="item">12</button> |
| | | <button class="item">14</button> |
| | | <button class="item">16</button> |
| | | <button class="item">18</button> |
| | | <button class="item">20</button> |
| | | <button class="item">22</button> |
| | | <button class="item">24</button> |
| | | <button class="item">26</button> |
| | | <button class="item">28</button> |
| | | <button class="item">30</button> |
| | | <button class="item">32</button> |
| | | <button class="item">34</button> |
| | | <button class="item">36</button> |
| | | <button class="item">38</button> |
| | | <button class="item">40</button> |
| | | <button class="item">42</button> |
| | | <button class="item">44</button> |
| | | <button class="item">46</button> |
| | | <button class="item">48</button> |
| | | <button class="item">50</button> |
| | | <button class="item">52</button> |
| | | <button class="item">54</button> |
| | | <button class="item">56</button> |
| | | <button class="item">58</button> |
| | | <button class="item">60</button> |
| | | <button class="item">62</button> |
| | | <button class="item">64</button> |
| | | <button class="item">66</button> |
| | | <button class="item">68</button> |
| | | <button class="item">70</button> |
| | | <span class="row-no">9#</span> |
| | | </div> |
| | | <div class="stock-group"> |
| | | <div id="site-104" class="site" style="">104</div> |
| | | <button class="item">2</button> |
| | | <button class="item">4</button> |
| | | <button class="item">6</button> |
| | | <button class="item">8</button> |
| | | <button class="item">10</button> |
| | | <button class="item">12</button> |
| | | <button class="item">14</button> |
| | | <button class="item">16</button> |
| | | <button class="item">18</button> |
| | | <button class="item">20</button> |
| | | <button class="item">22</button> |
| | | <button class="item">24</button> |
| | | <button class="item">26</button> |
| | | <button class="item">28</button> |
| | | <button class="item">30</button> |
| | | <button class="item">32</button> |
| | | <button class="item">34</button> |
| | | <button class="item">36</button> |
| | | <button class="item">38</button> |
| | | <button class="item">40</button> |
| | | <button class="item">42</button> |
| | | <button class="item">44</button> |
| | | <button class="item">46</button> |
| | | <button class="item">48</button> |
| | | <button class="item">50</button> |
| | | <button class="item">52</button> |
| | | <button class="item">54</button> |
| | | <button class="item">56</button> |
| | | <button class="item">58</button> |
| | | <button class="item">60</button> |
| | | <button class="item">62</button> |
| | | <button class="item">64</button> |
| | | <button class="item">66</button> |
| | | <button class="item">68</button> |
| | | <button class="item">70</button> |
| | | <span class="row-no">10#</span> |
| | | </div> |
| | | <!-- 堆垛机 --> |
| | | <div class="crn"> |
| | | <hr class="pathway"> |
| | | <div id="crn-3" class="machine"></div> |
| | | </div> |
| | | <!-- 货架 --> |
| | | <div class="stock-group"> |
| | | <div id="site-105" class="site" style="">105</div> |
| | | <button class="item">2</button> |
| | | <button class="item">4</button> |
| | | <button class="item">6</button> |
| | | <button class="item">8</button> |
| | | <button class="item">10</button> |
| | | <button class="item">12</button> |
| | | <button class="item">14</button> |
| | | <button class="item">16</button> |
| | | <button class="item">18</button> |
| | | <button class="item">20</button> |
| | | <button class="item">22</button> |
| | | <button class="item">24</button> |
| | | <button class="item">26</button> |
| | | <button class="item">28</button> |
| | | <button class="item">30</button> |
| | | <button class="item">32</button> |
| | | <button class="item">34</button> |
| | | <button class="item">36</button> |
| | | <button class="item">38</button> |
| | | <button class="item">40</button> |
| | | <button class="item">42</button> |
| | | <button class="item">44</button> |
| | | <button class="item">46</button> |
| | | <button class="item">48</button> |
| | | <button class="item">50</button> |
| | | <button class="item">52</button> |
| | | <button class="item">54</button> |
| | | <button class="item">56</button> |
| | | <button class="item">58</button> |
| | | <button class="item">60</button> |
| | | <button class="item">62</button> |
| | | <button class="item">64</button> |
| | | <button class="item">66</button> |
| | | <button class="item">68</button> |
| | | <button class="item">70</button> |
| | | <span class="row-no">11#</span> |
| | | </div> |
| | | <div class="stock-group"> |
| | | <button class="item" style="margin-left: 82px">2</button> |
| | | <button class="item">4</button> |
| | | <button class="item">6</button> |
| | | <button class="item">8</button> |
| | | <button class="item">10</button> |
| | | <button class="item">12</button> |
| | | <button class="item">14</button> |
| | | <button class="item">16</button> |
| | | <button class="item">18</button> |
| | | <button class="item">20</button> |
| | | <button class="item">22</button> |
| | | <button class="item">24</button> |
| | | <button class="item">26</button> |
| | | <button class="item">28</button> |
| | | <button class="item">30</button> |
| | | <button class="item">32</button> |
| | | <button class="item">34</button> |
| | | <button class="item">36</button> |
| | | <button class="item">38</button> |
| | | <button class="item">40</button> |
| | | <button class="item">42</button> |
| | | <button class="item">44</button> |
| | | <button class="item">46</button> |
| | | <button class="item">48</button> |
| | | <button class="item">50</button> |
| | | <button class="item">52</button> |
| | | <button class="item">54</button> |
| | | <button class="item">56</button> |
| | | <button class="item">58</button> |
| | | <button class="item">60</button> |
| | | <button class="item">62</button> |
| | | <button class="item">64</button> |
| | | <button class="item">66</button> |
| | | <button class="item">68</button> |
| | | <button class="item">70</button> |
| | | <span class="row-no">12#</span> |
| | | </div> |
| | | </div> |
| | | <!--第四组--> |
| | | <div class="lane"> |
| | | <span class="row-no"></span> |
| | | <!-- 货架 --> |
| | | <div class="stock-group"> |
| | | <button class="item" style="margin-left: 82px">2</button> |
| | | <button class="item">4</button> |
| | | <button class="item">6</button> |
| | | <button class="item">8</button> |
| | | <button class="item">10</button> |
| | | <button class="item">12</button> |
| | | <button class="item">14</button> |
| | | <button class="item">16</button> |
| | | <button class="item">18</button> |
| | | <button class="item">20</button> |
| | | <button class="item">22</button> |
| | | <button class="item">24</button> |
| | | <button class="item">26</button> |
| | | <button class="item">28</button> |
| | | <button class="item">30</button> |
| | | <button class="item">32</button> |
| | | <button class="item">34</button> |
| | | <button class="item">36</button> |
| | | <button class="item">38</button> |
| | | <button class="item">40</button> |
| | | <button class="item">42</button> |
| | | <button class="item">44</button> |
| | | <button class="item">46</button> |
| | | <button class="item">48</button> |
| | | <button class="item">50</button> |
| | | <button class="item">52</button> |
| | | <button class="item">54</button> |
| | | <button class="item">56</button> |
| | | <button class="item">58</button> |
| | | <button class="item">60</button> |
| | | <button class="item">62</button> |
| | | <button class="item">64</button> |
| | | <button class="item">66</button> |
| | | <button class="item">68</button> |
| | | <button class="item">70</button> |
| | | <span class="row-no">13#</span> |
| | | </div> |
| | | <div class="stock-group"> |
| | | <div id="site-106" class="site" style="">106</div> |
| | | <button class="item">2</button> |
| | | <button class="item">4</button> |
| | | <button class="item">6</button> |
| | | <button class="item">8</button> |
| | | <button class="item">10</button> |
| | | <button class="item">12</button> |
| | | <button class="item">14</button> |
| | | <button class="item">16</button> |
| | | <button class="item">18</button> |
| | | <button class="item">20</button> |
| | | <button class="item">22</button> |
| | | <button class="item">24</button> |
| | | <button class="item">26</button> |
| | | <button class="item">28</button> |
| | | <button class="item">30</button> |
| | | <button class="item">32</button> |
| | | <button class="item">34</button> |
| | | <button class="item">36</button> |
| | | <button class="item">38</button> |
| | | <button class="item">40</button> |
| | | <button class="item">42</button> |
| | | <button class="item">44</button> |
| | | <button class="item">46</button> |
| | | <button class="item">48</button> |
| | | <button class="item">50</button> |
| | | <button class="item">52</button> |
| | | <button class="item">54</button> |
| | | <button class="item">56</button> |
| | | <button class="item">58</button> |
| | | <button class="item">60</button> |
| | | <button class="item">62</button> |
| | | <button class="item">64</button> |
| | | <button class="item">66</button> |
| | | <button class="item">68</button> |
| | | <button class="item">70</button> |
| | | <span class="row-no">14#</span> |
| | | </div> |
| | | <!-- 堆垛机 --> |
| | | <div class="crn"> |
| | | <hr class="pathway"> |
| | | <div id="crn-4" class="machine"></div> |
| | | </div> |
| | | <!-- 货架 --> |
| | | <div class="stock-group"> |
| | | <div id="site-107" class="site" style="">107</div> |
| | | <button class="item">2</button> |
| | | <button class="item">4</button> |
| | | <button class="item">6</button> |
| | | <button class="item">8</button> |
| | | <button class="item">10</button> |
| | | <button class="item">12</button> |
| | | <button class="item">14</button> |
| | | <button class="item">16</button> |
| | | <button class="item">18</button> |
| | | <button class="item">20</button> |
| | | <button class="item">22</button> |
| | | <button class="item">24</button> |
| | | <button class="item">26</button> |
| | | <button class="item">28</button> |
| | | <button class="item">30</button> |
| | | <button class="item">32</button> |
| | | <button class="item">34</button> |
| | | <button class="item">36</button> |
| | | <button class="item">38</button> |
| | | <button class="item">40</button> |
| | | <button class="item">42</button> |
| | | <button class="item">44</button> |
| | | <button class="item">46</button> |
| | | <button class="item">48</button> |
| | | <button class="item">50</button> |
| | | <button class="item">52</button> |
| | | <button class="item">54</button> |
| | | <button class="item">56</button> |
| | | <button class="item">58</button> |
| | | <button class="item">60</button> |
| | | <button class="item">62</button> |
| | | <button class="item">64</button> |
| | | <button class="item">66</button> |
| | | <button class="item">68</button> |
| | | <button class="item">70</button> |
| | | <span class="row-no">15#</span> |
| | | </div> |
| | | <div class="stock-group"> |
| | | <button class="item" style="margin-left: 82px">2</button> |
| | | <button class="item">4</button> |
| | | <button class="item">6</button> |
| | | <button class="item">8</button> |
| | | <button class="item">10</button> |
| | | <button class="item">12</button> |
| | | <button class="item">14</button> |
| | | <button class="item">16</button> |
| | | <button class="item">18</button> |
| | | <button class="item">20</button> |
| | | <button class="item">22</button> |
| | | <button class="item">24</button> |
| | | <button class="item">26</button> |
| | | <button class="item">28</button> |
| | | <button class="item">30</button> |
| | | <button class="item">32</button> |
| | | <button class="item">34</button> |
| | | <button class="item">36</button> |
| | | <button class="item">38</button> |
| | | <button class="item">40</button> |
| | | <button class="item">42</button> |
| | | <button class="item">44</button> |
| | | <button class="item">46</button> |
| | | <button class="item">48</button> |
| | | <button class="item">50</button> |
| | | <button class="item">52</button> |
| | | <button class="item">54</button> |
| | | <button class="item">56</button> |
| | | <button class="item">58</button> |
| | | <button class="item">60</button> |
| | | <button class="item">62</button> |
| | | <button class="item">64</button> |
| | | <button class="item">66</button> |
| | | <button class="item">68</button> |
| | | <button class="item">70</button> |
| | | <span class="row-no">16#</span> |
| | | </div> |
| | | </div> |
| | | <!--第五组--> |
| | | <div class="lane"> |
| | | <span class="row-no"></span> |
| | | <!-- 货架 --> |
| | | <div class="stock-group"> |
| | | <button class="item" style="margin-left: 82px">2</button> |
| | | <button class="item">4</button> |
| | | <button class="item">6</button> |
| | | <button class="item">8</button> |
| | | <button class="item">10</button> |
| | | <button class="item">12</button> |
| | | <button class="item">14</button> |
| | | <button class="item">16</button> |
| | | <button class="item">18</button> |
| | | <button class="item">20</button> |
| | | <button class="item">22</button> |
| | | <button class="item">24</button> |
| | | <button class="item">26</button> |
| | | <button class="item">28</button> |
| | | <button class="item">30</button> |
| | | <button class="item">32</button> |
| | | <button class="item">34</button> |
| | | <button class="item">36</button> |
| | | <button class="item">38</button> |
| | | <button class="item">40</button> |
| | | <button class="item">42</button> |
| | | <button class="item">44</button> |
| | | <button class="item">46</button> |
| | | <button class="item">48</button> |
| | | <button class="item">50</button> |
| | | <button class="item">52</button> |
| | | <button class="item">54</button> |
| | | <button class="item">56</button> |
| | | <button class="item">58</button> |
| | | <button class="item">60</button> |
| | | <button class="item">62</button> |
| | | <button class="item">64</button> |
| | | <button class="item">66</button> |
| | | <button class="item">68</button> |
| | | <button class="item">70</button> |
| | | <span class="row-no">17#</span> |
| | | </div> |
| | | <div class="stock-group"> |
| | | <div id="site-108" class="site" style="">108</div> |
| | | <button class="item">2</button> |
| | | <button class="item">4</button> |
| | | <button class="item">6</button> |
| | | <button class="item">8</button> |
| | | <button class="item">10</button> |
| | | <button class="item">12</button> |
| | | <button class="item">14</button> |
| | | <button class="item">16</button> |
| | | <button class="item">18</button> |
| | | <button class="item">20</button> |
| | | <button class="item">22</button> |
| | | <button class="item">24</button> |
| | | <button class="item">26</button> |
| | | <button class="item">28</button> |
| | | <button class="item">30</button> |
| | | <button class="item">32</button> |
| | | <button class="item">34</button> |
| | | <button class="item">36</button> |
| | | <button class="item">38</button> |
| | | <button class="item">40</button> |
| | | <button class="item">42</button> |
| | | <button class="item">44</button> |
| | | <button class="item">46</button> |
| | | <button class="item">48</button> |
| | | <button class="item">50</button> |
| | | <button class="item">52</button> |
| | | <button class="item">54</button> |
| | | <button class="item">56</button> |
| | | <button class="item">58</button> |
| | | <button class="item">60</button> |
| | | <button class="item">62</button> |
| | | <button class="item">64</button> |
| | | <button class="item">66</button> |
| | | <button class="item">68</button> |
| | | <button class="item">70</button> |
| | | <span class="row-no">18#</span> |
| | | </div> |
| | | <!-- 堆垛机 --> |
| | | <div class="crn"> |
| | | <hr class="pathway"> |
| | | <div id="crn-5" class="machine"></div> |
| | | </div> |
| | | <!-- 货架 --> |
| | | <div class="stock-group"> |
| | | <div id="site-109" class="site" style="">109</div> |
| | | <button class="item">2</button> |
| | | <button class="item">4</button> |
| | | <button class="item">6</button> |
| | | <button class="item">8</button> |
| | | <button class="item">10</button> |
| | | <button class="item">12</button> |
| | | <button class="item">14</button> |
| | | <button class="item">16</button> |
| | | <button class="item">18</button> |
| | | <button class="item">20</button> |
| | | <button class="item">22</button> |
| | | <button class="item">24</button> |
| | | <button class="item">26</button> |
| | | <button class="item">28</button> |
| | | <button class="item">30</button> |
| | | <button class="item">32</button> |
| | | <button class="item">34</button> |
| | | <button class="item">36</button> |
| | | <button class="item">38</button> |
| | | <button class="item">40</button> |
| | | <button class="item">42</button> |
| | | <button class="item">44</button> |
| | | <button class="item">46</button> |
| | | <button class="item">48</button> |
| | | <button class="item">50</button> |
| | | <button class="item">52</button> |
| | | <button class="item">54</button> |
| | | <button class="item">56</button> |
| | | <button class="item">58</button> |
| | | <button class="item">60</button> |
| | | <button class="item">62</button> |
| | | <button class="item">64</button> |
| | | <button class="item">66</button> |
| | | <button class="item">68</button> |
| | | <button class="item">70</button> |
| | | <span class="row-no">19#</span> |
| | | </div> |
| | | <div class="stock-group"> |
| | | <button class="item" style="margin-left: 82px">2</button> |
| | | <button class="item">4</button> |
| | | <button class="item">6</button> |
| | | <button class="item">8</button> |
| | | <button class="item">10</button> |
| | | <button class="item">12</button> |
| | | <button class="item">14</button> |
| | | <button class="item">16</button> |
| | | <button class="item">18</button> |
| | | <button class="item">20</button> |
| | | <button class="item">22</button> |
| | | <button class="item">24</button> |
| | | <button class="item">26</button> |
| | | <button class="item">28</button> |
| | | <button class="item">30</button> |
| | | <button class="item">32</button> |
| | | <button class="item">34</button> |
| | | <button class="item">36</button> |
| | | <button class="item">38</button> |
| | | <button class="item">40</button> |
| | | <button class="item">42</button> |
| | | <button class="item">44</button> |
| | | <button class="item">46</button> |
| | | <button class="item">48</button> |
| | | <button class="item">50</button> |
| | | <button class="item">52</button> |
| | | <button class="item">54</button> |
| | | <button class="item">56</button> |
| | | <button class="item">58</button> |
| | | <button class="item">60</button> |
| | | <button class="item">62</button> |
| | | <button class="item">64</button> |
| | | <button class="item">66</button> |
| | | <button class="item">68</button> |
| | | <button class="item">70</button> |
| | | <span class="row-no">20#</span> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <!--底部--> |
| | | <div id="body"> |
| | | <!-- 总开关 --> |
| | | <div class="system-state"> |
| | | <div class="body-head">总开关</div> |
| | | <div class="switch"> |
| | | <div id="system-icon" class="system-icon-open" onclick="systemSwitch()"></div> |
| | | <div class="switch_r"> |
| | | <p>系统状态</p> |
| | | <p id="system-run-desc">系统运行中</p> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <!-- 堆垛机状态 --> |
| | | <div class="machine-status"> |
| | | <div class="body-head">堆垛机状态</div> |
| | | <div class="state"> |
| | | <span>堆垛机 1</span> |
| | | <span class="state-ss machine-put-flag ">入库</span> |
| | | </div> |
| | | <div class="state"> |
| | | <span>堆垛机 2</span> |
| | | <span class="state-ss machine-auto-flag ">自动</span> |
| | | <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"> |
| | | |
| | | </div> |
| | | <div class="button"><span>所有状态</span></div> |
| | | <div class="button item-group"> |
| | | <span class="machine-put-flag">入库</span> |
| | | <span class="machine-take-flag">出库</span> |
| | | <span class="machine-stock-move-flag">库到库</span> |
| | | <span class="machine-site-move-flag">站到站</span> |
| | | <span class="machine-p-move-flag">PToP</span> |
| | | <span class="machine-error-flag">异常</span> |
| | | <span class="machine-auto-flag">自动</span> |
| | | <span class="machine-unauto-flag">非自动/手动</span> |
| | | </div> |
| | | </div> |
| | | <div class="line-status"> |
| | | <div class="body-head">输送线状态</div> |
| | | <div class="state states"> |
| | | <span>运输线总数</span> |
| | | <span class="line-ss">45</span> |
| | | </div> |
| | | <div class="button"><span>所有状态</span></div> |
| | | <div class="button 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"> |
| | | </div> |
| | | </div> |
| | | <div class="tablebox"> |
| | | <div class="table-head"> |
| | | <li><span>条码名称</span><span class="right">扫码时间</span></li> |
| | | </div> |
| | | <div id="barcode2" class="table-body"> |
| | | |
| | | </div> |
| | | </div> |
| | | <div class="tablebox"> |
| | | <div class="table-head"> |
| | | <li><span>条码名称</span><span class="right">扫码时间</span></li> |
| | | </div> |
| | | <div id="barcode2" class="table-body"> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | </div> |
| | | </div> |
| | | <div class="tablebox"> |
| | | <div class="table-head"> |
| | | <li><span>条码名称</span><span class="right">扫码时间</span></li> |
| | | </div> |
| | | <div id="barcode3" class="table-body"> |
| | | <!-- 输送设备弹窗 --> |
| | | <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> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <!-- 堆垛机弹窗 --> |
| | | <div id="crnWindow" style="display: none;" class="animate__animated animate__fadeIn"> |
| | | <div id="crnWindow-head"> |
| | | <div class='detailed'></div> |
| | | <button></button> |
| | | </div> |
| | | <form> |
| | | <!-- 堆垛机号 --> |
| | | <div class="form-item"> |
| | | <div class="form-item-label" style> |
| | | <span>堆垛机号:</span> |
| | | </div> |
| | | <div class="form-item-input"> |
| | | <input type="text" name="crnNo" 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="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="wrkSts" value=""> |
| | | </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="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> |
| | | <!-- 堆垛机状态 --> |
| | | <div class="form-item"> |
| | | <div class="form-item-label"> |
| | | <span>堆垛机状态:</span> |
| | | </div> |
| | | <div class="form-item-input"> |
| | | <input type="text" name="crnStatus" value=""> |
| | | </div> |
| | | </div> |
| | | <!-- 异常 --> |
| | | <div class="form-item"> |
| | | <div class="form-item-label"> |
| | | <span>异常:</span> |
| | | </div> |
| | | <div class="form-item-input"> |
| | | <input type="text" name="error" value=""> |
| | | </div> |
| | | </div> |
| | | </form> |
| | | </div> |
| | | <!-- 输送设备弹窗 --> |
| | | <div id="siteWindow" style="display: none;" class="animate__animated animate__fadeIn"> |
| | | <!-- 表头 --> |
| | | <div id="siteWindow-head"> |
| | | <div class='detailed'></div> |
| | | <button></button> |
| | | </div> |
| | | <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-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 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> |
| | | </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,//定时器存储变量 |
| | | }, |
| | | created() { |
| | | this.init() |
| | | }, |
| | | watch: { |
| | | |
| | | </form> |
| | | </div> |
| | | }, |
| | | methods: { |
| | | init() { |
| | | this.getMap(this.currentLev) |
| | | this.getSystemRunningStatus() //获取系统运行状态 |
| | | |
| | | </div> |
| | | this.consoleInterval = setInterval(() => { |
| | | this.getShuttleStateInfo() //获取四向穿梭车信息 |
| | | this.getLiftStateInfo() //获取提升机信息 |
| | | this.getSiteInfo() //获取输送站点数据 |
| | | this.getMap(this.currentLev) //获取实时地图数据 |
| | | }, 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'); |
| | | } |
| | | } |
| | | } |
| | | |
| | | }) |
| | | }, |
| | | 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 |
| | | |
| | | </body> |
| | | 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('请输入口令,并停止WCS系统', '提示', { |
| | | confirmButtonText: '确定', |
| | | cancelButtonText: '取消', |
| | | }).then(({ |
| | | value |
| | | }) => { |
| | | that.doSwitch(0, value) |
| | | }).catch(() => { |
| | | |
| | | }); |
| | | } 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)//清理定时器 |
| | | |
| | | 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 |
| | | |
| | | 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) { |
| | | //检测路径是否为穿梭车预计路径,如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' |
| | | }); |
| | | } |
| | | }) |
| | | } |
| | | } |
| | | }) |
| | | </script> |
| | | </body> |
| | | </html> |
| | | <script> |
| | | var tData = [] |
| | | var tDate1 = [] |
| | | var tDate2 = [] |
| | | var tDate3 = [] |
| | | function getCodeData(){ |
| | | $.ajax({ |
| | | url:baseUrl +'/console/barcode/output/site', |
| | | method:'GET', |
| | | success:function (res) { |
| | | if(res.code === 200){ |
| | | tData = eval(res.data); |
| | | console.log(tData) |
| | | if(tData.length<=5){ |
| | | tData1 = tData |
| | | } else if (tData.length<=10){ |
| | | tDate1 = tData.slice(0,5) |
| | | tData.splice(0,5) |
| | | tDate2 = tData |
| | | console.log(tDate2) |
| | | } else if(tData.length<=15){ |
| | | tDate1 = tData.slice(0,5) |
| | | tDate2 = tData.slice(6,10) |
| | | tData.splice(0,10) |
| | | tDate3 = tData |
| | | console.log(tDate3) |
| | | } else { |
| | | tData = tData.slice(-15) |
| | | tDate1 = tData.slice(-15) |
| | | tDate2 = tData.slice(-10) |
| | | tDate3 = tData.slice(-5) |
| | | |
| | | } |
| | | } |
| | | } |
| | | }) |
| | | } |
| | | setInterval(function () { |
| | | getCodeData(); |
| | | renderBarCode(); |
| | | }, 1000) |
| | | |
| | | |
| | | |
| | | |
| | | function renderBarCode() { |
| | | for (var i = 0;i<tDate1.length;i++){ |
| | | console.log(tDate1[i]) |
| | | var str1 = '<li><span>' + tDate1[i].barcode + '</span><span class="right">' + tDate1[i].time + '</span></li>' |
| | | $('#barcode1').append(str1) |
| | | } |
| | | for(var j = 0;j<tDate2.length;j++){ |
| | | var str2 = '<li><span>' + tDate2[j].barcode + '</span><span class="right">' + tDate2[j].time + '</span></li>' |
| | | $('#barcode2').append(str2) |
| | | } |
| | | for(var k = 0;k<tDate3.length;k++){ |
| | | var str3 = '<li><span>' + tDate3[k].barcode + '</span><span class="right">' + tDate3[k].time + '</span></li>' |
| | | $('#barcode3').append(str3) |
| | | } |
| | | } |
| | | </script> |
| | | <script type="text/javascript"> |
| | | // 弹窗站点信息 |
| | | $('.site').on('click',function(){ |
| | | var id = this.id.split("-")[1]; |
| | | $("#siteWindow").attr("style","display:block;");//显示div |
| | | $("#crnWindow").attr("style","display:none;"); |
| | | $(".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(data[val]); |
| | | } else if (find[0].type === 'checkbox') { |
| | | find.attr("checked", data[val] === 'Y'); |
| | | } |
| | | } |
| | | } |
| | | |
| | | }) |
| | | |
| | | }); |
| | | // 堆垛机信息 |
| | | $('.machine').on('click',function(){ |
| | | var id = this.id.split("-")[1]; |
| | | $("#crnWindow").attr('style','display:block;'); |
| | | $("#siteWindow").attr("style","display:none;"); |
| | | $('.detailed').empty(); |
| | | $('.detailed').append(id+'号堆垛机'); |
| | | $.ajax({ |
| | | url:baseUrl+"/console/crn/detail", |
| | | headers:{ |
| | | 'token': localStorage.getItem('token') |
| | | }, |
| | | data:{ |
| | | crnNo: id |
| | | }, |
| | | method:'post', |
| | | success:function (res) { |
| | | for (var val in res.data) { |
| | | var find = $("#crnWindow").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'); |
| | | } |
| | | } |
| | | } |
| | | |
| | | }) |
| | | |
| | | }) |
| | | // 弹窗关闭 |
| | | $('button').on('click',function(){ |
| | | $('#siteWindow').attr('style','display:none') |
| | | $('#crnWindow').attr('style','display:none') |
| | | }) |
| | | |
| | | |
| | | |
| | | var crn1Position = 0; |
| | | var crn2Position = 0; |
| | | var crn3Position = 0; |
| | | var crn4Position = 0; |
| | | var crn5Position = 0; |
| | | |
| | | // 初始化 |
| | | getSitesInfo(); |
| | | getCrnInfo(); |
| | | getSystemRunningStatus(); |
| | | getBarcodeInfo(); |
| | | getScaleInfo(); |
| | | // 实时访问 |
| | | setInterval(function () { |
| | | getCrnInfo(); |
| | | getSystemRunningStatus(); |
| | | getBarcodeInfo(); |
| | | getScaleInfo(); |
| | | }, 1000); |
| | | setInterval(function () { |
| | | getSitesInfo(); |
| | | }, 3000); |
| | | |
| | | // 系统运行开关 |
| | | function systemSwitch() { |
| | | if (parent.systemRunning){ |
| | | layer.prompt({title: '请输入口令,并停止 WCS 系统', formType: 1, shadeClose: true}, function(pass, idx){ |
| | | layer.close(idx); |
| | | doSwitch(0, pass); // 停止wcs系统 |
| | | }); |
| | | } else { |
| | | doSwitch(1); // 启动wcs系统 |
| | | } |
| | | } |
| | | |
| | | // 请求服务器控制wcs系统运行状态 |
| | | function doSwitch(operatorType, password) { |
| | | // 加载tips |
| | | var index = layer.load(1, { |
| | | shade: [0.1,'#fff'] |
| | | }); |
| | | $.ajax({ |
| | | url: baseUrl+ "/console/system/switch", |
| | | headers: {'token': localStorage.getItem('token')}, |
| | | // async: false, |
| | | data: { |
| | | operatorType: operatorType, |
| | | password: password |
| | | }, |
| | | method: 'POST', |
| | | success: function (res) { |
| | | console.log(res) |
| | | layer.close(index); |
| | | if (res.code === 200){ |
| | | if (res.data.status) { |
| | | $('#system-icon').attr("class", "system-icon-open"); |
| | | $('#system-run-desc').html("系统运行中..."); |
| | | parent.systemRunning = true; |
| | | } else { |
| | | $('#system-icon').attr("class", "system-icon-close"); |
| | | $('#system-run-desc').html("系统已停止!"); |
| | | parent.systemRunning = false; |
| | | } |
| | | } else if (res.code === 403){ |
| | | parent.location.href = baseUrl+"/login"; |
| | | } else { |
| | | console.log(res.msg); |
| | | |
| | | } |
| | | } |
| | | }); |
| | | |
| | | } |
| | | |
| | | // 获取wcs系统运行状态 |
| | | function getSystemRunningStatus() { |
| | | $.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-icon').attr("class", "system-icon-open"); |
| | | $('#system-run-desc').html("系统运行中..."); |
| | | parent.systemRunning = true; |
| | | } else { |
| | | $('#system-icon').attr("class", "system-icon-close"); |
| | | $('#system-run-desc').html("系统已停止!"); |
| | | parent.systemRunning = false; |
| | | } |
| | | } else if (res.code === 403){ |
| | | parent.location.href = baseUrl+"/login"; |
| | | } else { |
| | | console.log(res.msg); |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | |
| | | // 输送设备实时数据获取 |
| | | 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++){ |
| | | 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); |
| | | } |
| | | if (i+1===8) { |
| | | carAnimate(i+1, Number(sites[i].nearbySta)); |
| | | } |
| | | } |
| | | } else if (res.code === 403){ |
| | | parent.location.href = baseUrl+"/login"; |
| | | } else { |
| | | console.log(res.msg); |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | |
| | | // 堆垛机实时数据获取 |
| | | 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++){ |
| | | var crnEl = $("#crn-"+crns[i].crnId); |
| | | crnEl.attr("class", "machine " + crns[i].crnStatus); |
| | | var unit = ($('.item').eq(0).width()+4)/2; |
| | | crnEl.animate({left: (crns[i].bay * unit + 25) +'px'}, 1000); |
| | | } |
| | | } else if (res.code === 403){ |
| | | parent.location.href = baseUrl+"/login"; |
| | | } else { |
| | | console.log(res.msg); |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | |
| | | // 扫码器实时数据获取 |
| | | function getBarcodeInfo(){ |
| | | $.ajax({ |
| | | url: baseUrl+ "/console/latest/data/barcode", |
| | | headers: {'token': localStorage.getItem('token')}, |
| | | method: 'POST', |
| | | success: function (res) { |
| | | if (res.code === 200){ |
| | | var barcodes = res.data; |
| | | for (var i = 0; i < barcodes.length; i++){ |
| | | $("#code-decoder-data-"+barcodes[i].barcodeId).html(barcodes[i].codeValue); |
| | | } |
| | | } else if (res.code === 403){ |
| | | parent.location.href = baseUrl+"/login"; |
| | | } else { |
| | | console.log(res.msg); |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | |
| | | // 磅秤实时数据获取 |
| | | function getScaleInfo(){ |
| | | $.ajax({ |
| | | url: baseUrl+ "/console/latest/data/scale", |
| | | headers: {'token': localStorage.getItem('token')}, |
| | | method: 'POST', |
| | | success: function (res) { |
| | | |
| | | if (res.code === 200){ |
| | | var sclaes = res.data; |
| | | for (var i = 0; i < sclaes.length; i++){ |
| | | console.log(sclaes[i].scaleId + ":" + sclaes[i].value) |
| | | $("#scale-data-"+sclaes[i].scaleId).text(sclaes[i].value); |
| | | } |
| | | } else if (res.code === 403){ |
| | | parent.location.href = baseUrl+"/login"; |
| | | } else { |
| | | console.log(res.msg); |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | |
| | | // 堆垛机偏移动画 |
| | | function crnAnimate(id, leftVal) { |
| | | switch (id) { |
| | | case 1: |
| | | $("#crn-1").animate({left: leftVal+'px'}, 1000); |
| | | crn1Position = leftVal; |
| | | break; |
| | | case 2: |
| | | $("#crn-2").animate({left: leftVal+'px'}, 1000); |
| | | crn2Position = leftVal; |
| | | break; |
| | | case 3: |
| | | $("#crn-3").animate({left: leftVal+'px'}, 1000); |
| | | crn3Position = leftVal; |
| | | break; |
| | | case 4: |
| | | $("#crn-4").animate({left: leftVal+'px'}, 1000); |
| | | crn4Position = leftVal; |
| | | break; |
| | | case 5: |
| | | $("#crn-5").animate({left: leftVal+'px'}, 1000); |
| | | crn5Position = leftVal; |
| | | break; |
| | | default: |
| | | break |
| | | } |
| | | } |
| | | |
| | | // 页面点击事件监听 --------------------------------------------------------- |
| | | |
| | | // 输送设备点击事件 |
| | | // $('.site').on('click', function () { |
| | | // var id = this.id.split("-")[1]; |
| | | // if (id === undefined) { |
| | | // return; |
| | | // } |
| | | // layer.open({ |
| | | // title: id + " 站点信息详情", |
| | | // closeBtn: 0, |
| | | // skin: 'layui-layer-lan', |
| | | // offset: '180px', |
| | | // type: 1, |
| | | // shadeClose: true, |
| | | // content: $('#siteWindow'), |
| | | // area: ['35rem', '18rem'], |
| | | // btn: ['确定', '关闭'], |
| | | // success: function(layero, index){ |
| | | // http.post(baseUrl+"/console/site/detail", {siteId: id}, 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'); |
| | | // } |
| | | // } |
| | | // }) |
| | | // }, |
| | | // end: function () { |
| | | // $(':input', $("#siteWindow")).val('').removeAttr('checked').removeAttr('selected'); |
| | | // } |
| | | // }); |
| | | // }); |
| | | |
| | | // 堆垛机点击事件 |
| | | // $('.machine').on('click', function () { |
| | | // var id = this.id.split("-")[1]; |
| | | // layer.open({ |
| | | // title: id+"号堆垛机", |
| | | // skin: 'layui-layer-lan', |
| | | // closeBtn: 0, |
| | | // type: 1, |
| | | // offset: '150px', |
| | | // shadeClose: true, |
| | | // content: $("#crnWindow"), |
| | | // area: ['40rem', '20rem'], |
| | | // btn: ['确定', '关闭'], |
| | | // success: function(layero, index){ |
| | | // http.post(baseUrl+"/console/crn/detail", {crnNo: id}, function (res) { |
| | | // for (var val in res.data) { |
| | | // var find = $("#crnWindow").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'); |
| | | // } |
| | | // } |
| | | // }) |
| | | // }, |
| | | // end: function () { |
| | | // $(':input', $("#crnWindow")).val('').removeAttr('checked').removeAttr('selected'); |
| | | // } |
| | | // }); |
| | | // }); |
| | | |
| | | |
| | | // 小车偏移动画 |
| | | function carAnimate(id, target) { |
| | | var targetTop = 122; |
| | | if (id === 8) { |
| | | switch (target) { |
| | | case 1: |
| | | targetTop += 160; |
| | | break; |
| | | case 2: |
| | | targetTop += 140; |
| | | break; |
| | | case 3: |
| | | targetTop += 80; |
| | | break; |
| | | case 4: |
| | | targetTop += 40; |
| | | break; |
| | | case 7: |
| | | targetTop += 0; |
| | | break; |
| | | default: |
| | | return; |
| | | } |
| | | } else { |
| | | return; |
| | | } |
| | | $("#site-" + id).animate({top: targetTop+'px'}, 1000); |
| | | } |
| | | |
| | | |
| | | |
| | | </script> |