| <template> | 
|     <view class="container"> | 
|         <!-- 跳动信息板 --> | 
|         <view class="floor-screen" :class="floorMove" > | 
|             <!-- 头部 --> | 
|             <view class="head"> | 
|                 <text @click="port()">自动仓库WCS监控平台</text> | 
|                 <view class="time-tools">{{year}}-{{month}}-{{day}} {{hours}}:{{minutes}}:{{seconds}} {{week}}</view> | 
|                 <view class="button-left" @click="ejected()"></view> | 
|                 <view class="button-right" @click="ledId()"></view> | 
|             </view> | 
|             <view class="main"> | 
|                 <view class="main-sides" style="width: 100%;"> | 
|                     <view class="box" style="height: 90%;"> | 
|                         <view class="box-border box-border1"></view> | 
|                         <view class="box-border box-border2"></view> | 
|                         <view class="box-border box-border3"></view> | 
|                         <view class="box-border box-border4"></view> | 
|                         <view style="width: 100%;height: 100%;" v-show="!errorShow"> | 
|                             <!-- 分有无订单划分两部分 --> | 
|                             <!-- 左侧信息 --> | 
|                             <view style="" :class="width"> | 
|                                 <!-- 全板出库 --> | 
|                                 <view class="box-items">{{title}}</view> | 
|                                 <!-- 目标站 --> | 
|                                 <view class="box-items">{{staNo}}</view> | 
|                                 <!-- 商品编号 --> | 
|                                 <!-- <view class="box-items">{{matnr}}</view> --> | 
|                                 <!-- 商品名称 --> | 
|                                 <view class="box-items">{{maknx}}</view> | 
|                                 <!-- 商品名称 --> | 
|                                 <view class="box-items">{{specs}}</view> | 
|                                 <!-- 出库数量 --> | 
|                                 <view class="box-items">{{count}}</view> | 
|                             </view> | 
|                             <view style="width: 50%;height: 100%;display: inline-block;float: left;" v-show="orderShow"> | 
|                                 <!-- 订单号 --> | 
|                                 <view class="box-items">{{orderNo}}</view> | 
|                                 <!-- 已出托盘数 --> | 
|                                 <view class="box-items">{{doneOfTray}}</view> | 
|                                 <!-- 托盘总数量 --> | 
|                                 <view class="box-items">{{totalOfTray}}</view> | 
|                                 <!-- 已出箱数 --> | 
|                                 <view class="box-items">{{doneOfUnit}}</view> | 
|                                 <!-- 总箱数 --> | 
|                                 <view class="box-items">{{totalOfUnit}}</view> | 
|                             </view> | 
|                         </view> | 
|                         <view style="width: 100%;height: 100%;" v-show="errorShow"> | 
|                             <view style="line-height: 700px;font-size: 175rpx;">{{errorMsg}}</view> | 
|                         </view> | 
|                          | 
|                          | 
|                         <!-- 全板出库 --> | 
|                         <!-- <view style="width: 10%;height: 100%;display:inline-block;float: left;text-align: center;padding-top: 180px;"> | 
|                             <text>{{title}}</text> | 
|                         </view> --> | 
|                         <!-- 滚动区域 --> | 
|                         <!-- <view style="width: 80%;height: 100%;display: inline-block;"> --> | 
|                             <!--显示order订单编号 --> | 
|                             <!-- <text v-show="orderShow" style="display: block;font-size: 140rpx;" >{{orderNo}}</text> | 
|                             <swiper :class="swiper" circular="true" vertical="true" display-multiple-items="6" :autoplay="autoplay" :interval="interval" :duration="duration"> | 
|                                 <swiper-item v-for="(item,index) in matList" :key="index"> | 
|                                     <view style="font-size: 160rpx;">{{item}}</view> | 
|                                 </swiper-item> | 
|                             </swiper> | 
|                         </view> --> | 
|                         <!-- 站台号 --> | 
|                         <!-- <view style="width: 10%;height: 100%;display: inline-block;float: right;padding-top: 180px;"> | 
|                             <text>{{staNo}}</text> | 
|                         </view> --> | 
|                     </view> | 
|                 </view> | 
|             </view> | 
|         </view> | 
|         <view class="top-screen" :class="topMove"> | 
|             <view class="head"> | 
|                 <text @click="port()">自动仓库WCS监控平台</text> | 
|                 <view class="time-tools">{{year}}-{{month}}-{{day}} {{hours}}:{{minutes}}:{{seconds}} {{week}}</view> | 
|                 <view class="button-left" @click="ejected()"></view> | 
|                 <view class="button-right" @click="ledId()"></view> | 
|             </view> | 
|             <view class="main"> | 
|                 <view class="main-sides"> | 
|                     <view class="box box-lg"> | 
|                         <view class="box-border box-border1"></view> | 
|                         <view class="box-border box-border2"></view> | 
|                         <view class="box-border box-border3"></view> | 
|                         <view class="box-border box-border4"></view> | 
|                         <view class="box-item introduce"> | 
|                             <h3>自动化立体仓库</h3> | 
|                             <p class="english">Automatic Storageand Retrieval System</p> | 
|                             <p class="introduce-content">  利用立体仓库设备可实现仓库高层合理化、存取自动化、操作简便化;自动化立体仓库是当前技术水平较高的形式。 | 
|                             自动化立体仓库的主体由货架、巷道式堆垛起重机、入(出)库工作台和自动运进(出)及操作控制系统组成。 | 
|                             货架是钢结构或钢筋混凝土结构的建筑物或结构体,货架内是标准尺寸的货位空间,巷道堆垛起重机穿行于货架之间的巷道中,完成存、取货的工作。管理上采用计算机及条形码技术。</p> | 
|                         </view> | 
|                         <view class="box-item charge-info"> | 
|                             <h3>仓库数据</h3> | 
|                             <p class="english">warehouse data</p> | 
|                             <view class="charge-info-item"> | 
|                                 <image src="../../static/a1.png" mode="aspectFit"></image> | 
|                                 <view> | 
|                                     <text class="count">{{xDistance}}</text> | 
|                                     <text class="unit">m</text> | 
|                                 </view> | 
|                                 <view>累计走行距离(米)</view> | 
|                             </view> | 
|                             <view class="charge-info-item"> | 
|                                 <image src="../../static/b1.png" mode="aspectFit"></image> | 
|                                 <view> | 
|                                     <text class="count">{{yDistance}}</text> | 
|                                     <text class="unit">m</text> | 
|                                 </view> | 
|                                 <view>累计升降距离(米)</view> | 
|                             </view> | 
|                             <view class="charge-info-item"> | 
|                                 <image src="../../static/c1.png" mode="aspectFit"></image> | 
|                                 <view> | 
|                                     <text class="count">{{xDuration}}</text> | 
|                                     <text class="unit">m</text> | 
|                                 </view> | 
|                                 <view>累计走行时长(秒)</view> | 
|                             </view> | 
|                             <view class="charge-info-item"> | 
|                                 <image src="../../static/d1.png" mode="aspectFit"></image> | 
|                                 <view> | 
|                                     <text class="count">{{yDuration}}</text> | 
|                                     <text class="unit">m</text> | 
|                                 </view> | 
|                                 <view>累计升降时长(秒)</view> | 
|                             </view> | 
|                         </view> | 
|                         <view class="box-item use-info"> | 
|                             <view class="use-left"> | 
|                                 <h3>库位使用率</h3> | 
|                                 <p class="english">EQUIPMENT USAGE THIS MONTH</p> | 
|                             </view> | 
|                             <view class="use-right"> | 
|                                 <h3>{{usedPr}}%</h3> | 
|                                 <p class="english">同比上月 + 5%</p> | 
|                             </view> | 
|                             <view class="use-main"> | 
|                                 <view class="left"> | 
|                                     <view class="progressBar"> | 
|                                         <view class="progress" :style="'width:'+ usedPr + '%'"></view> | 
|                                     </view> | 
|                                     <!-- <progress percent="20"activeColor="#FF5722" backgroundColor="#233751" stroke-width="30"></progress> --> | 
|                                 </view> | 
|                                 <view class="right"> | 
|                                     {{used}} | 
|                                 </view> | 
|                             </view> | 
|                         </view> | 
|                     </view> | 
|                 </view> | 
|                 <view class="main-sides"> | 
|                     <view class="box box-tp"> | 
|                         <view class="box-border box-border1"></view> | 
|                         <view class="box-border box-border2"></view> | 
|                         <view class="box-border box-border3"></view> | 
|                         <view class="box-border box-border4"></view> | 
|                         <view class="box-item right-item"> | 
|                             <view class="sub-left"> | 
|                                 <h3>入出库统计</h3> | 
|                                 <p class="english">ORDER STATISTICS</p> | 
|                             </view> | 
|                             <view class="sub-right"> | 
|                                 <h3>31</h3> | 
|                                 <p class="english">今日订单数</p> | 
|                             </view> | 
|                             <view class="sub-main"> | 
|                                 <view class="charts-box"> | 
|                                   <qiun-data-charts type="line" :chartData="chartsDataLine1" :echartsH5="true" :echartsApp="true"/> | 
|                                 </view> | 
|                             </view> | 
|                         </view> | 
|                     </view> | 
|                     <view class="box box-md"> | 
|                         <view class="box-border box-border1"></view> | 
|                         <view class="box-border box-border2"></view> | 
|                         <view class="box-border box-border3"></view> | 
|                         <view class="box-border box-border4"></view> | 
|                         <view class="box-item right-item"> | 
|                             <view class="sub-left"> | 
|                                 <h3>库存类型</h3> | 
|                                 <p class="english">INCOME DATE</p> | 
|                             </view> | 
|                             <view class="sub-right"> | 
|                                 <h3>今天</h3> | 
|                                 <p class="english">Today</p> | 
|                             </view> | 
|                             <view class="sub-main"> | 
|                                 <view class="charts-box ring"> | 
|                                     <qiun-data-charts type="ring" :opts="{legend:{position:'bottom'}}" :eopts="ringOpts" :chartData="chartsDataPie2" :echartsH5="true" :echartsApp="true"/> | 
|                                 </view> | 
|                                 <view class="sub-main-right"> | 
|                                     <view class="sub-info"> | 
|                                         <image src="../../static/g1.png" mode="aspectFit"></image> | 
|                                         <text>在库</text> | 
|                                         <text>{{stockCount}}</text> | 
|                                     </view> | 
|                                     <view class="sub-info"> | 
|                                         <image src="../../static/f1.png" mode="aspectFit"></image> | 
|                                         <text>空库</text> | 
|                                         <text>{{emptyCount}}</text> | 
|                                     </view> | 
|                                     <view class="sub-info"> | 
|                                         <image src="../../static/e1.png" mode="aspectFit"></image> | 
|                                         <text>禁用</text> | 
|                                         <text>{{noneCount}}</text> | 
|                                     </view> | 
|                                 </view> | 
|                             </view> | 
|                         </view> | 
|                     </view> | 
|                     <view class="box box-bt"> | 
|                         <view class="box-border box-border1"></view> | 
|                         <view class="box-border box-border2"></view> | 
|                         <view class="box-border box-border3"></view> | 
|                         <view class="box-border box-border4"></view> | 
|                         <!-- <text>浙江中扬立库技术有限公司</text> | 
|                         <text>当前版本号</text> --> | 
|                         <view @click="crn()">嘉善边锋机械股份有限公司</view> | 
|                         <!-- <image src="../../static/barcode.png" mode="aspectFit"></image> --> | 
|                     </view> | 
|                 </view> | 
|             </view> | 
|         </view> | 
|         <view> | 
|             <!-- 输入url --> | 
|             <uni-popup ref="url" type="dialog"> | 
|                 <uni-popup-dialog ref="inputClose" mode="input" title="配置url" :value="baseIP" | 
|                     placeholder="示例:192.168.1.1" @confirm="baseUrlConfirm"></uni-popup-dialog> | 
|             </uni-popup> | 
|         </view> | 
|         <view> | 
|             <!-- 输入ledId --> | 
|             <uni-popup ref="ledId" type="dialog"> | 
|                 <uni-popup-dialog ref="inputClose" mode="input" title="配置ledId" :value="baseLedId" | 
|                     placeholder="示例:188" @confirm="ledIdConfirm"></uni-popup-dialog> | 
|             </uni-popup> | 
|         </view> | 
|         <view> | 
|             <!-- 输入port --> | 
|             <uni-popup ref="port" type="dialog"> | 
|                 <uni-popup-dialog ref="inputClose" mode="input" title="配置端口号" :value="basePort" | 
|                     placeholder="示例:9090" @confirm="portConfirm"></uni-popup-dialog> | 
|             </uni-popup> | 
|         </view> | 
|         <view> | 
|             <!-- 输入crnId --> | 
|             <uni-popup ref="crnId" type="dialog"> | 
|                 <uni-popup-dialog ref="inputClose" mode="input" title="配置堆垛机" :value="crnId" | 
|                     placeholder="示例:1" @confirm="crnConfirm"></uni-popup-dialog> | 
|             </uni-popup> | 
|         </view> | 
|         <!-- 自定义弹出层 --> | 
|         <view class="eject-mask" v-show="ejectShow"> | 
|             <view class="eject"> | 
|                 <!-- 弹出title --> | 
|                 <view class="eject-title">修改 / 配置</view> | 
|                 <!-- input --> | 
|                 <view class="eject-input"> | 
|                     <view class="item"> | 
|                         <view class="desc">ip:</view> | 
|                         <view class="input"> | 
|                             <input type="text" v-model="baseIP"> | 
|                         </view> | 
|                     </view> | 
|                     <view class="item"> | 
|                         <view class="desc">port:</view> | 
|                         <view class="input"> | 
|                             <input type="text" v-model="basePort"> | 
|                         </view> | 
|                     </view> | 
|                     <view class="item"> | 
|                         <view class="desc">ledId:</view> | 
|                         <view class="input"> | 
|                             <input type="text" v-model="baseLedId"> | 
|                         </view> | 
|                     </view> | 
|                     <view class="item"> | 
|                         <view class="desc">CrnId:</view> | 
|                         <view class="input"> | 
|                             <input type="text" v-model="baseCrnId"> | 
|                         </view> | 
|                     </view> | 
|                 </view> | 
|                 <!-- button --> | 
|                 <view class="eject-button"> | 
|                     <view class="button-item" @click="ejectClose">取 消</view> | 
|                     <view class="button-item" @click="ejectConfirm">确 认</view> | 
|                 </view> | 
|             </view> | 
|              | 
|         </view> | 
|     </view> | 
| </template> | 
|   | 
| <script> | 
|     import ycqdata from '@/pages/index/data.json'; | 
|     import demodata from '@/mockdata/demodata.json'; | 
|     export default { | 
|         data() { | 
|             return { | 
|                 commonUrl:null, // 通用url | 
|                 show: true, | 
|                 modeClass: 'fade', | 
|                 styles: {}, | 
|                 baseIP:'', | 
|                 baseLedId:'', | 
|                 basePort:'', | 
|                 crnId:'', | 
|                 value: '', | 
|                 xDistance: 0, | 
|                 yDistance:0, | 
|                 xDuration:0, | 
|                 yDuration:0, | 
|                 used:317, | 
|                 usedPr: 90, | 
|                 stockCount:0, | 
|                 emptyCount:0, | 
|                 noneCount:0, | 
|                 chartsData: { | 
|                     "Line": { | 
|                         "categories": [], | 
|                         "series": [] | 
|                     }, | 
|                     "Pie": { | 
|                         "series": [{ | 
|                             "data": [] | 
|                         }] | 
|                     }, | 
|                 }, | 
|                 chartsDataLine1: {}, | 
|                 chartsDataPie2: {}, | 
|                 ringOpts:{}, | 
|                 year:2022, | 
|                 month:4, | 
|                 day:14, | 
|                 hours:13, | 
|                 minutes:38, | 
|                 seconds:13, | 
|                 week:'星期四', | 
|                 ani:'', | 
|                 // move: 'upMove 1.5s 1;', | 
|                 move:false, | 
|                 topMove:'topUp', | 
|                 floorMove:'', | 
|                 version:'', | 
|                 // newspaper:'拣料出库(4426)\n源库位:1200101\n目标站:186\n1101842-10000-22047518517\n\n',     | 
|                 newspaper:'', | 
|                 errorPaper:'', | 
|                 title:'', | 
|                 staNo:'', | 
|                 matnr:'', | 
|                 maknx:'', | 
|                 specs:'', | 
|                 count:'', | 
|                 orderNo:null, | 
|                 doneOfTray:'', | 
|                 totalOfTray:'', | 
|                 doneOfUnit:'', | 
|                 totalOfUnit:'', | 
|                 errorMsg:null, | 
|                 width:'full-width', | 
|                 errorShow:'', | 
|                 pakinShow:'', | 
|                 pakinGun:'', | 
|                 orderShow:false, | 
|                 swiper:'swiper-here', | 
|                 autoplay:true, // 自动循环 | 
|                 interval:1000, // 调用时长 | 
|                 duration:8000, // 移动速度 | 
|                 matList:[], // 订单列表 | 
|                 ejectShow: false, | 
|                  | 
|             } | 
|         }, | 
|         mounted() { | 
|             let that = this | 
|             const BaseIP = uni.getStorageSync('BaseIp'); | 
|             const BaseLedId = uni.getStorageSync('BaseLedId'); | 
|             const BasePort = uni.getStorageSync('BasePort'); | 
|             const BaseCrnId = uni.getStorageSync('BaseCrnId'); | 
|                 that.baseIP = BaseIP | 
|                 that.baseLedId = BaseLedId | 
|                 that.basePort = BasePort | 
|                 that.baseCrnId = BaseCrnId | 
|             this.getUrl() | 
|         }, | 
|         onLoad() { | 
|              | 
|         }, | 
|         onReady() { | 
|             setInterval(() => { | 
|                 // 获得初始数据 | 
|                 this.initlineChart(); | 
|                 this.initPieChart(); | 
|                 // 主页信息 | 
|                 this.getServerData(); | 
|                 this.getOther(); | 
|                 // 其他信息 | 
|                 this.getDate(); | 
|                 this.getPakin(); | 
|                 this.getError(); | 
|                 // this.getYYY(); | 
|                 // this.getEEE(); | 
|                 this.animation() | 
|                 this.getUrl() | 
|             },1000) | 
|         }, | 
|         methods: { | 
|             // 获取url | 
|             getUrl() { | 
|                 this.commonUrl = this.baseHttp + this.baseIP + ':' +this.basePort + this.baseUrl | 
|                 this.chartsDataLine1 = JSON.parse(JSON.stringify(demodata.Line)) | 
|             }, | 
|             // 获取错误信息 | 
|             getYYY() { | 
|                 let that = this | 
|                 var result = ycqdata.dataEEE | 
|                 // 测试用 ↓ | 
|                 var    res = result.data | 
|                 // 测试用 ↑ | 
|                 // 返回结果有值 且值不等于空值 就是有错误信息需要展示 | 
|                 if (res.data && res.data !== "") { | 
|                      | 
|                     that.errorMsg = res.data | 
|                     that.errorShow = true | 
|                     that.move = false // 显示 | 
|                 } else { | 
|                     that.errorPaper = '' | 
|                     that.errorShow = false | 
|                     if (that.pakinShow) { | 
|                         return; | 
|                     } else { | 
|                         that.move = true // 隐藏 | 
|                     } | 
|                 } | 
|             }, | 
|             getEEE () { | 
|                 let that = this | 
|                 var newsData = '' | 
|                 var str = '' | 
|                 let result = ycqdata.dataYYY | 
|                         // 测试用 ↓ | 
|                 let    res = result.data | 
|                         // 测试用 ↑ | 
|                     if(res.data && res.data !== null) { | 
|                         if (res.data[0].ioType === 101) { | 
|                             that.title = '全板出库' | 
|                         } else if(res.data[0].ioType === 103) { | 
|                             that.title = '检料出库' | 
|                         } | 
|                         that.staNo = '目标站:' + res.data[0].staNo | 
|                         that.matnr = '商品编号:' + res.data[0].matDtos[0].matnr | 
|                         that.maknx = '商品名称:' + res.data[0].matDtos[0].maknx | 
|                         that.count = '出库数量:' + res.data[0].matDtos[0].count | 
|                         if (res.data[0].orderNo) { | 
|                             that.orderNo = "订单号:" + res.data[0].orderNo | 
|                             that.orderShow = true | 
|                             that.width = 'half-width' | 
|                         } else { | 
|                             that.orderNo = null; | 
|                             that.orderShow = false | 
|                             that.width = 'full-width' | 
|                         } | 
|                         that.doneOfTray = '已出托盘数:' + res.data[0].doneOfTray | 
|                         that.totalOfTray = '托盘总数量:' + res.data[0].totalOfTray | 
|                         that.doneOfUnit = '已出箱数:' + res.data[0].doneOfUnit | 
|                         that.totalOfUnit = '总箱数:' + res.data[0].totalOfUnit | 
|                         if (that.errorShow) { | 
|                                     return; | 
|                                 } else { | 
|                                     that.newspaper = newsData | 
|                                     that.move = false | 
|                                 } | 
|                     }else { | 
|                         that.move = true | 
|                     } | 
|                      | 
|                      | 
|             }, | 
|             // 获取错误信息 | 
|             getError() { | 
|                 let that = this | 
|                 var res | 
|                 uni.request({ | 
|                     url: that.commonUrl + "/monitor/led/error", | 
|                     data: { | 
|                         ledId:that.baseLedId | 
|                     }, | 
|                     method:'GET', | 
|                     success(result) { | 
|                         res = result.data  | 
|                         if (res.data && res.data !== "") { | 
|                             that.errorMsg = res.data | 
|                             that.errorShow = true | 
|                             that.move = false // 显示 | 
|                         } else { | 
|                             that.errorShow = false | 
|                             // if (that.pakinShow) { | 
|                             //     return; | 
|                             // } else { | 
|                             //     // that.move = true // 隐藏 | 
|                             // } | 
|                         } | 
|                     } | 
|                 }); | 
|             }, | 
|             getPakin () { | 
|                 let that = this | 
|                 that.matList = [] // 清空条码列表 | 
|                 var newsData = '' | 
|                 var str = '' | 
|                 let res  | 
|                 uni.request({ | 
|                     url: that.commonUrl + "/monitor/led", | 
|                     data: { | 
|                         ledId:that.baseLedId | 
|                     }, | 
|                     method:'GET', | 
|                     success(result) { | 
|                         res = result.data | 
|                         if (that.errorShow) { | 
|                             return;  // 有错误信息 | 
|                         }  | 
|                         if(res.data && res.data !== null) { | 
|                             if (res.data[0].ioType === 101) { | 
|                                 that.title = '全板出库' | 
|                             } else if(res.data[0].ioType === 103) { | 
|                                 that.title = '检料出库' | 
|                             } else | 
|                             that.title = res.data[0].title | 
|                             that.staNo = '目标站:' + res.data[0].staNo | 
|                             that.matnr = '商品编号:' + res.data[0].matDtos[0].matnr | 
|                             that.maknx = '商品名称:' + res.data[0].matDtos[0].maknx | 
|                             that.specs = '规格:' + res.data[0].matDtos[0].specs | 
|                             that.count = '出库数量:' + res.data[0].matDtos[0].count | 
|                             if (res.data[0].orderNo) { | 
|                                 that.orderNo = "订单号:" + res.data[0].orderNo | 
|                                 that.orderShow = true | 
|                                 that.width = 'half-width' | 
|                             } else { | 
|                                 that.orderNo = null; | 
|                                 that.orderShow = false | 
|                                 that.width = 'full-width' | 
|                             } | 
|                             that.doneOfTray = '已出托盘数:' + res.data[0].doneOfTray | 
|                             that.totalOfTray = '托盘总数量:' + res.data[0].totalOfTray | 
|                             that.doneOfUnit = '已出箱数:' + res.data[0].doneOfUnit | 
|                             that.totalOfUnit = '总箱数:' + res.data[0].totalOfUnit | 
|                             that.newspaper = newsData | 
|                             that.move = false | 
|                         }else { | 
|                             that.move = true | 
|                         } | 
|                     } | 
|                 }); | 
|             }, | 
|             animation() { | 
|                 if (this.move) {  | 
|                     this.topMove = 'topUp' | 
|                     this.floorMove = 'floorUp' | 
|                 } else { | 
|                     this.topMove = 'topDown' | 
|                     this.floorMove = 'floorDown' | 
|                 } | 
|             }, | 
|             getDateFormat(value) { | 
|                 var date = new Date();// 获取当前时间 | 
|                 date.setDate(date.getDate() + value);// 设置天数 -1 天 | 
|                 var m = date.getMonth() + 1 | 
|                 var d = date.getDate() | 
|                 var newDate = m + '-' + d | 
|                 return newDate | 
|             }, | 
| /*************** 折线图 *****************************************************************************************************/ | 
|             initlineChart() { | 
|                 let that = this | 
|                 uni.request({ | 
|                     url: that.commonUrl + "/monitor/line/charts", | 
|                     method:'GET', | 
|                     success(result) { | 
|                         var res = result.data | 
|                         console.log(result); | 
|                         if (res.code === 200) { | 
|                             that.chartsData.Line.categories = [ | 
|                                 that.getDateFormat(-11),that.getDateFormat(-10),that.getDateFormat(-9),that.getDateFormat(-8), | 
|                                 that.getDateFormat(-7),that.getDateFormat(-6),that.getDateFormat(-5),that.getDateFormat(-4), | 
|                                 that.getDateFormat(-3),that.getDateFormat(-2),that.getDateFormat(-1),that.getDateFormat(0),] | 
|                             that.chartsData.Line.series = res.data.rows | 
|                         } | 
|                     } | 
|                 }) | 
|             }, | 
| /*************** 饼图 *****************************************************************************************************/ | 
|             initPieChart() { | 
|                 let that = this | 
|                 uni.request({ | 
|                     url: that.commonUrl + "/monitor/loc/rep", | 
|                     method:'GET', | 
|                     success(result) { | 
|                         var res = result.data | 
|                         if (res.code === 200) { | 
|                             that.chartsData.Pie.series[0].data = res.data.pie | 
|                             that.stockCount = res.data.stockCunt | 
|                             that.emptyCount = res.data.emptyCount | 
|                             that.noneCount = res.data.noneCount | 
|                             that.used = res.data.used | 
|                             that.usedPr = res.data.usedPr | 
|                         } | 
|                     } | 
|                 }) | 
|             }, | 
|             getOther() { | 
|                 let that = this | 
|                 uni.request({ | 
|                     // http://10.10.0.222:9090/jkwcs/monitor/led?ledId=186 | 
|                     url: that.commonUrl + "/monitor/other", | 
|                     data: { | 
|                         crnId: that.baseCrnId,  | 
|                         ledId: 1, | 
|                     }, | 
|                     success(result) { | 
|                         console.log(result); | 
|                         var res = result.data | 
|                         if (res.code === 200) { | 
|                             that.xDistance = res.data.xDistance | 
|                             that.yDistance = res.data.yDistance | 
|                             that.xDuration = res.data.xDuration | 
|                             that.yDuration = res.data.yDuration | 
|                         } else if (res.code === 403) { | 
|                              | 
|                         } else { | 
|                              | 
|                         } | 
|                     } | 
|                 }) | 
|             }, | 
|             ejected () { | 
|                 this.ejectShow = true | 
|             }, | 
|             // 弹出层确认 | 
|             ejectConfirm() { | 
|                 uni.setStorageSync('BaseIp', this.baseIP); | 
|                 uni.setStorageSync('BaseLedId', this.baseLedId); | 
|                 uni.setStorageSync('BasePort',this.basePort); | 
|                 uni.setStorageSync('BaseCrnId',this.baseCrnId); | 
|                 this.getUrl() | 
|                 this.ejectShow = false | 
|             }, | 
|             // 弹出层取消 | 
|             ejectClose() { | 
|                 this.ejectShow = false | 
|             }, | 
|             getServerData() { | 
|                 this.chartsDataLine1=JSON.parse(JSON.stringify(this.chartsData.Line)) | 
|                 this.chartsDataPie2=JSON.parse(JSON.stringify(this.chartsData.Pie)) | 
|             }, | 
|             complete(e) { | 
|                 console.log("渲染完成事件",e); | 
|             }, | 
|             getDate() { | 
|                 var dt = new Date(); | 
|                 this.year = dt.getFullYear(); | 
|                 this.month = (dt.getMonth()+1) < 10 ? '0'+ (dt.getMonth()+1) : (dt.getMonth()+1); | 
|                 this.day = dt.getDate() < 10 ? '0'+dt.getDate() : dt.getDate(); | 
|                 this.hours = dt.getHours() < 10 ? '0' + dt.getHours() : dt.getHours(); | 
|                 this.minutes = dt.getMinutes() < 10 ? '0' + dt.getMinutes() : dt.getMinutes(); | 
|                 this.seconds = dt.getSeconds() < 10 ? '0' + dt.getSeconds() : dt.getSeconds();  | 
|                 this.weeks = dt.getDay();  | 
|                 switch (this.weeks) { | 
|                     case 0: this.week = "星期日"; break; | 
|                     case 1: this.week = "星期一"; break; | 
|                     case 2: this.week = "星期二"; break; | 
|                     case 3: this.week = "星期三"; break; | 
|                     case 4: this.week = "星期四"; break; | 
|                     case 5: this.week = "星期五"; break; | 
|                     default : this.week = "星期六"; | 
|                 } | 
|             }, | 
|         } | 
|     } | 
| </script> | 
|   | 
| <style> | 
|     /* 弹出:配置区域 */ | 
|     .eject-mask { | 
|         width: 100%; | 
|         height: 100%; | 
|         background-color: rgba(0, 0, 0, 0.5); | 
|         position: fixed; | 
|         top: 0; | 
|         left: 0; | 
|         z-index: 999; | 
|         display: flex; | 
|         align-items: center; | 
|         justify-content: center;     | 
|     } | 
|     .eject{ | 
|         position: relative; | 
|         width: 600px; | 
|         height: 350px; | 
|         background-color: #eaeaea; | 
|         border-radius: 25rpx; | 
|     } | 
|     .eject-title { | 
|         width: 100%; | 
|         height: 100px; | 
|         line-height: 100px; | 
|         font-size: 20px; | 
|         font-weight: 700; | 
|         color:     #606266; | 
|         text-align: center; | 
|     } | 
|     .eject-input { | 
|          | 
|     } | 
|     .item { | 
|         display: flex; | 
|         align-items: center; | 
|         margin: 10px 0 0 0; | 
|     } | 
|     .desc { | 
|         display: inline-block; | 
|         width: 40%; | 
|         text-align: right; | 
|         color: #606266; | 
|         font-size: 18px; | 
|     } | 
|     .input { | 
|         display: flex; | 
|         align-items: center; | 
|         padding-left: 5px; | 
|         padding-right: 5px; | 
|         width: 100%; | 
|         height: 30px; | 
|         border: 1px solid #C0C4CC; | 
|         margin-right: 50px; | 
|     } | 
|     .eject-input input { | 
|         width: 100%; | 
|          | 
|          | 
|     } | 
|     .eject-button { | 
|         display: flex; | 
|         align-items: center; | 
|         position: absolute; | 
|         bottom: 0; | 
|         height: 60px; | 
|         line-height: 60px; | 
|         width: 100%; | 
|         border-top: 1px solid #ccc; | 
|     } | 
|     .button-item { | 
|         width: 50%; | 
|         height: 100%; | 
|         font-size: 20px; | 
|         font-weight: bold; | 
|         text-align: center; | 
|         color: #909399; | 
|     } | 
|     .button-item:last-child { | 
|         color: #67C23A; | 
|          | 
|         border-left: 1px solid #ccc; | 
|     } | 
|     .full-width { | 
|         width: 100%; | 
|         height: 100%; | 
|         display: inline-block; | 
|         float: left; | 
|     } | 
|     .half-width { | 
|         width: 50%; | 
|         height: 100%; | 
|         display: inline-block; | 
|         float: left; | 
|     } | 
|     .box-items { | 
|         height: 20%; | 
|         width: 100%; | 
|         /* background-color: #233751; */ | 
|         line-height: 300rpx; | 
|     } | 
|     /* 当前页面无 orderNo */ | 
|     .swiper-here { | 
|         display: inline-block; | 
|         margin: 0 auto; | 
|         width: 100%; | 
|         height: 100%; | 
|     } | 
|     /* 当前页面有 orderNo */ | 
|     .swiper-here-oN{ | 
|         display: inline-block; | 
|         /* background-color: #063A7B; */ | 
|         margin: 0 auto; | 
|         width: 100%; | 
|         height: 90%; | 
|     } | 
|     /* 当前页面有 error提示 */ | 
|     .swiper-here-error { | 
|         display: inline-block; | 
|         /* background-color: #063A7B; */ | 
|         /* margin: 0 auto; */ | 
|         margin-top: 20%; | 
|         width: 100%; | 
|         height: 100%; | 
|     } | 
|     .animate { | 
|         display: inline-block; | 
|                 /* white-space: nowrap; */ | 
|                 animation: 25s wordsLoop linear infinite normal; | 
|             } | 
|       | 
|             @keyframes wordsLoop { | 
|                 0% { | 
|                     transform: translateY(100px); | 
|                     -webkit-transform: translateY(100px); | 
|                 } | 
|                 100% { | 
|                     transform: translateY(-100%); | 
|                     -webkit-transform: translateY(-100%); | 
|                 } | 
|             } | 
|       | 
|             @-webkit-keyframes wordsLoop { | 
|                 0% { | 
|                     transform: translateY(100px); | 
|                     -webkit-transform: translateY(100px); | 
|                 } | 
|                 100% { | 
|                     transform: translateY(-100%); | 
|                     -webkit-transform: translateY(-100%); | 
|                 } | 
|             } | 
|     /* animation:upMove 1.5s 1; */ | 
|     /* downMove */ | 
|     /* 上层向上 */ | 
|     .topUp { | 
|         animation: topUp 1.5s 1; | 
|         animation-fill-mode: both; | 
|     } | 
|     @keyframes topUp { | 
|         from { | 
|             opacity: 0.5; | 
|             /* background-color:blue; */ | 
|             top:-1080px | 
|             } | 
|         to { | 
|             opacity: 1; | 
|             /* background-color:red; */ | 
|             top: 0; | 
|         } | 
|     } | 
|     /* 上层向下 */ | 
|     .topDown { | 
|         animation: topDown 1.5s 1; | 
|         animation-fill-mode: both; | 
|     } | 
|     @keyframes topDown | 
|         { | 
|         from { | 
|             opacity: 1; | 
|             /* background-color:red; */ | 
|             top: 0; | 
|         } | 
|         to { | 
|             opacity: 0.5; | 
|             /* background-color:blue; */ | 
|             top:-1080px | 
|         } | 
|     } | 
|     /* 下层向上 */ | 
|     .floorUp { | 
|         animation: floorUp 1.5s 1; | 
|         animation-fill-mode: both; | 
|     } | 
|     @keyframes floorUp { | 
|         from { | 
|             opacity: 0.5; | 
|             /* background-color:blue; */ | 
|             top: 0px; | 
|             } | 
|         to { | 
|             opacity: 1; | 
|             /* background-color:red; */ | 
|             top: 1080px; | 
|         } | 
|     } | 
|     /* 下层向下 */ | 
|     .floorDown { | 
|         animation: floorDown 1.5s 1; | 
|         animation-fill-mode: both; | 
|     } | 
|     @keyframes floorDown { | 
|         from { | 
|             opacity: 0.5; | 
|             /* background-color:blue; */ | 
|             top: 1080px; | 
|             } | 
|         to { | 
|             opacity: 1; | 
|             /* background-color:red; */ | 
|             top: -0px; | 
|         } | 
|     } | 
|     .top-screen { | 
|         position: fixed; | 
|         width: 1920px; | 
|         height: 1080px; | 
|         /* top: -1000px; */ | 
|         background-image: url(../../static/background.png); | 
|         /* background:red; */ | 
|         /* animation:upMove 1.5s 1; */ | 
|         z-index: 999; | 
|     } | 
|     .floor-screen { | 
|         width: 1920px; | 
|         height: 1080px; | 
|         position: relative; | 
|         color: #FFFFFF; | 
|         text-align: center; | 
|         font-size: 120rpx; | 
|         letter-spacing: 5rpx; | 
|         background-image: url(../../static/background.png); | 
|     } | 
|     .container { | 
|         width: 1920px; | 
|         height: 1080px; | 
|          | 
|         position: relative; | 
|         /* background: #000428;   | 
|         background: -webkit-linear-gradient(to right, #004e92, #000428);   | 
|         background: linear-gradient(to right, #004e92, #000428); */ | 
|     } | 
|     .head { | 
|         /* background-color: #55aaff; */ | 
|         width: 100%; | 
|         height: 10%; | 
|         text-align: center; | 
|         line-height: 110px; | 
|         color: #FFFFFF; | 
|         font-size: 40px; | 
|         font-weight: 700; | 
|         letter-spacing: 5px; | 
|     } | 
|     .head text { | 
|         transform: scale(1,0.9); | 
|     } | 
|     .time-tools { | 
|         height: 5%; | 
|         /* background-color: #007AFF; */ | 
|         position: absolute; | 
|         top: 0; | 
|         float: right; | 
|         right: 50px; | 
|         font-size: 16px; | 
|         font-weight: 400; | 
|         line-height: 70px; | 
|         letter-spacing: 1px; | 
|     } | 
|     .button-left { | 
|         position: absolute; | 
|         background-image: url(../../static/right.png); | 
|         background-size: 100% 100%; | 
|         top: 1.8%; | 
|         left: 21.3%; | 
|         width: 13.5%; | 
|         height: 8.5%; | 
|         transform: scaleX(-1); | 
|     } | 
|     .button-right { | 
|         position: absolute; | 
|         background-image: url(../../static/right.png); | 
|         background-size: 100% 100%; | 
|         top: 1.8%; | 
|         left: 65%; | 
|         width: 13.5%; | 
|         height: 8.5%; | 
|     } | 
|     .main { | 
|         /* background-color: #3F536E; */ | 
|         position: relative; | 
|         width: 100%; | 
|         height: 90%; | 
|     } | 
|     .main-sides { | 
|         /* background-color: #004E92; */ | 
|         position: relative; | 
|         display: inline-block; | 
|         float: left; | 
|         width: 50%; | 
|         height: 100%; | 
|         /* margin: 2% auto 0 3.2%; | 
|         border: 1px solid rgba(20, 80, 136, 1); */ | 
|     } | 
|     .box { | 
|         position: relative; | 
|         /* background-color: #ffffff; */ | 
|         margin: 3% 2% 0 2%; | 
|         width: 96%; | 
|         height: 30%; | 
|         border: 1px solid rgba(20, 80, 136, 1); | 
|         overflow: hidden; | 
|     } | 
|     .box-lg { | 
|         height: 94%; | 
|     } | 
|     .box-border { | 
|         position: absolute; | 
|         /* background-color: #4CD964; */ | 
|         width: 10px; | 
|         height: 10px; | 
|     } | 
|     .box-border1 { | 
|         top: 0; | 
|         left: 0; | 
|         border-left: 2px solid #31c4c4; | 
|         border-top: 2px solid #31c4c4; | 
|     } | 
|     .box-border2 { | 
|         top: 0; | 
|         right: 0; | 
|         border-right: 2px solid #31c4c4; | 
|         border-top: 2px solid #31c4c4; | 
|     } | 
|     .box-border3 { | 
|         bottom: 0; | 
|         left: 0; | 
|         border-bottom: 2px solid #31c4c4; | 
|         border-left: 2px solid #31c4c4; | 
|     } | 
|     .box-border4 { | 
|         bottom: 0; | 
|         right: 0; | 
|         border-right: 2px solid #31c4c4; | 
|         border-bottom: 2px solid #31c4c4; | 
|     } | 
|     .content { | 
|       display: flex; | 
|       flex-direction: column; | 
|       flex: 1; | 
|     } | 
|      | 
|     .charts-box { | 
|       width: 80%; | 
|       height: 230px; | 
|       margin-left: 10%; | 
|       /* background-color: #fff; */ | 
|     } | 
|     .ring { | 
|         display: inline-block; | 
|         float: left; | 
|         width: 60%; | 
|         height: 300px; | 
|         margin-left: -10%; | 
|     } | 
|     .box-item { | 
|         /* background-color: #2C405A; */ | 
|         width: 92%; | 
|         height: 20%; | 
|         margin-left: 4%; | 
|         padding-top: 1em; | 
|         color: #FFFFFF; | 
|     } | 
|     .introduce { | 
|         height: 30%; | 
|     } | 
|     .introduce h2 { | 
|         letter-spacing: 5px; | 
|          | 
|     } | 
|     .english { | 
|         font-size: 14px; | 
|     } | 
|     .introduce-content { | 
|         font-size: 20px; | 
|         padding-top: 2em; | 
|         text-indent: 2em; | 
|         line-height: 2em; | 
|     } | 
|     .charge-info { | 
|         /* background-color: #2C405A; */ | 
|         height: 45%; | 
|     } | 
|     .charge-info-item { | 
|         /* background-color: #EE6666; */ | 
|         display: inline-block; | 
|         width: 50%; | 
|         height: 40%; | 
|     } | 
|     .charge-info-item image { | 
|         display: inline-block; | 
|         float: left; | 
|         /* background-color: #4CD964; */ | 
|         height: 100%; | 
|         width: 20%; | 
|     } | 
|     .charge-info-item view { | 
|         display: inline-block; | 
|         position: relative; | 
|         margin-left: 10%; | 
|         width: 70%; | 
|         height: 49%; | 
|         /* background-color: #1890FF; */ | 
|     } | 
|     .charge-info-item .count, .charge-info-item .unit{ | 
|         position: absolute; | 
|         display: inline-block; | 
|         font-size: 32px; | 
|         bottom: 0; | 
|         padding-left: 5%; | 
|     } | 
|     .charge-info-item .unit { | 
|         font-size: 16px; | 
|         float: right; | 
|         right: 20%; | 
|     } | 
|     .footer { | 
|         position: absolute; | 
|         border: 1px solid rgba(20, 80, 136, 1); | 
|         height: 15%; | 
|     } | 
|     .use-info { | 
|         /* background-color: #007AFF; */ | 
|     } | 
|     .use-left { | 
|         display: inline-block; | 
|         /* background-color: #2C405A; */ | 
|         width: 40%; | 
|     } | 
|     .use-right { | 
|         display: inline-block; | 
|         /* background-color: #2C405A; */ | 
|         float: right; | 
|         width: 20%; | 
|     } | 
|     .use-main { | 
|         width: 100%; | 
|         height: 75%; | 
|         /* background-color: #4CD964; */ | 
|     } | 
|     .use-main .left { | 
|         /* background-color: #ffaa7f; */ | 
|         display: inline-block; | 
|         float: left; | 
|         height: 100%; | 
|         width: 70%; | 
|         line-height: 20px; | 
|     } | 
|     .left .progressBar { | 
|         /* margin-left: ; */ | 
|         margin-top: 9%; | 
|         width: 100%; | 
|         height: 20%; | 
|         background-color: #233751; | 
|         border-radius: 20px; | 
|     } | 
|     .left .progress { | 
|         /* width: 90%; */ | 
|         height: 100%; | 
|         background-color: #FF5722; | 
|         border-radius: 20px; | 
|     } | 
|     .left progress { | 
|         margin-left: 10%; | 
|         margin-top: 10%; | 
|         display: block; | 
|     } | 
|     .use-main .right { | 
|         /* background-color: #ffaaff; */ | 
|         display: inline-block; | 
|         float: right; | 
|         height: 100%; | 
|         width: 20%; | 
|         font-size: 40px; | 
|         color: #FF5722; | 
|         line-height: 130px; | 
|     } | 
|     .box-tp { | 
|         height: 30%; | 
|     } | 
|     .box-tp .sub-main { | 
|         /* background-color: #FFFFFF; */ | 
|     } | 
|     .box-md { | 
|         height: 43%; | 
|     } | 
|     .box-md .sub-main { | 
|     } | 
|     .sub-main-right { | 
|         display: inline-block; | 
|         height: 100%; | 
|         width: 50%; | 
|     } | 
|     .sub-info { | 
|         width: 100%; | 
|         height: 33%; | 
|     } | 
|     .sub-info image { | 
|         display: inline-block; | 
|         float: left; | 
|         height: 100%; | 
|         width: 15%; | 
|     } | 
|     .sub-info text { | 
|         display: inline-block; | 
|         width: 40%; | 
|         height: 100%; | 
|         text-align: center; | 
|         line-height: 120px; | 
|         font-size: 20px; | 
|     } | 
|     .box-bt { | 
|         background-color: #063A7B; | 
|         border: none; | 
|         height: 15%; | 
|         color: #FFFFFF; | 
|     } | 
|     .box-bt image { | 
|         position: absolute; | 
|         float: right; | 
|         right: 0; | 
|         top: 0; | 
|         width: 20%; | 
|         height: 100%; | 
|     } | 
|     .box-bt { | 
|         font-size: 36px; | 
|         line-height: 140px; | 
|         text-indent: 5em; | 
|     } | 
|     .right-item { | 
|         height: 94%; | 
|     } | 
|     .sub-left { | 
|         display: inline-block; | 
|         float: left; | 
|         width: 40%; | 
|     } | 
|     .sub-right { | 
|         display: inline-block; | 
|         float: right; | 
|         width: 20%; | 
|     } | 
|     .sub-main { | 
|         position: absolute; | 
|         /* background-color: #31C4C4; */ | 
|         width: 92%; | 
|         height: 80%; | 
|         bottom: 0; | 
|     } | 
| </style> | 
| <!-- {"matnr":"1100349-10000","maknx":"C5S-4-M03/333/KS","batch":"22037502300","count":1.0}, | 
|                     {"matnr":"1100349-10000","maknx":"C5S-4-M03/333/KS","batch":"22037505146","count":1.0}, | 
|                     {"matnr":"1100349-10000","maknx":"C5S-4-M03/333/KS","batch":"22027504801","count":1.0}, | 
|                     {"matnr":"1100349-10000","maknx":"C5S-4-M03/333/KS","batch":"22027507729","count":1.0}, | 
|                     {"matnr":"1100349-10000","maknx":"C5S-4-M03/333/KS","batch":"22027507727","count":1.0}, | 
|                     {"matnr":"1100349-10000","maknx":"C5S-4-M03/333/KS","batch":"22027507731","count":1.0}, | 
|                     {"matnr":"1100349-10000","maknx":"C5S-4-M03/333/KS","batch":"22027504807","count":1.0}, | 
|                     {"matnr":"1100349-10000","maknx":"C5S-4-M03/333/KS","batch":"22027504805","count":1.0}, | 
|                     {"matnr":"1100349-10000","maknx":"C5S-4-M03/333/KS","batch":"22027504797","count":1.0}, | 
|                     {"matnr":"1100349-10000","maknx":"C5S-4-M03/333/KS","batch":"22027504794","count":1.0}, | 
|                     {"matnr":"1100349-10000","maknx":"C5S-4-M03/333/KS","batch":"22027504791","count":1.0}, | 
|                     {"matnr":"1100349-10000","maknx":"C5S-4-M03/333/KS","batch":"22027504793","count":1.0}, | 
|                     {"matnr":"1100349-10000","maknx":"C5S-4-M03/333/KS","batch":"22037505141","count":1.0}, | 
|                     {"matnr":"1100349-10000","maknx":"C5S-4-M03/333/KS","batch":"22027507728","count":1.0}, | 
|                     {"matnr":"1100349-10000","maknx":"C5S-4-M03/333/KS","batch":"22027504810","count":1.0}, | 
|                     {"matnr":"1100349-10000","maknx":"C5S-4-M03/333/KS","batch":"22037505148","count":1.0} --> |