|  |  | 
 |  |  |          <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="url()"></view> | 
 |  |  |             <view class="button-left" @click="ejected()"></view> | 
 |  |  |             <view class="button-right" @click="ledId()"></view> | 
 |  |  |          </view> | 
 |  |  |          <view class="main"> | 
 |  |  | 
 |  |  |                         <!-- 目标站 --> | 
 |  |  |                         <view class="box-items">{{staNo}}</view> | 
 |  |  |                         <!-- 商品编号 --> | 
 |  |  |                         <view class="box-items">{{matnr}}</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 class="head"> | 
 |  |  |             <text @click="port()">自动仓库WCS监控平台</text> | 
 |  |  |             <view class="time-tools">{{year}}-{{month}}-{{day}} {{hours}}:{{minutes}}:{{seconds}} {{week}}</view> | 
 |  |  |             <view class="button-left" @click="url()"></view> | 
 |  |  |             <view class="button-left" @click="ejected()"></view> | 
 |  |  |             <view class="button-right" @click="ledId()"></view> | 
 |  |  |          </view> | 
 |  |  |          <view class="main"> | 
 |  |  | 
 |  |  |                         <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="box-border box-border4"></view> | 
 |  |  |                   <!-- <text>浙江中扬立库技术有限公司</text> | 
 |  |  |                   <text>当前版本号</text> --> | 
 |  |  |                   <view @click="crn()">浙江中扬立库技术有限公司</view> | 
 |  |  |                   <image src="../../static/barcode.png" mode="aspectFit"></image> | 
 |  |  |                   <view @click="crn()">嘉善边锋机械股份有限公司</view> | 
 |  |  |                   <!-- <image src="../../static/barcode.png" mode="aspectFit"></image> --> | 
 |  |  |                </view> | 
 |  |  |             </view> | 
 |  |  |          </view> | 
 |  |  | 
 |  |  |             <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> | 
 |  |  | 
 |  |  |             week:'星期四', | 
 |  |  |             ani:'', | 
 |  |  |             // move: 'upMove 1.5s 1;', | 
 |  |  |             move:true, | 
 |  |  |             move:false, | 
 |  |  |             topMove:'topUp', | 
 |  |  |             floorMove:'', | 
 |  |  |             version:'', | 
 |  |  | 
 |  |  |             staNo:'', | 
 |  |  |             matnr:'', | 
 |  |  |             maknx:'', | 
 |  |  |             specs:'', | 
 |  |  |             count:'', | 
 |  |  |             orderNo:null, | 
 |  |  |             doneOfTray:'', | 
 |  |  | 
 |  |  |             interval:1000, // 调用时长 | 
 |  |  |             duration:8000, // 移动速度 | 
 |  |  |             matList:[], // 订单列表 | 
 |  |  |             ejectShow: false, | 
 |  |  | 				 | 
 |  |  |          } | 
 |  |  |       }, | 
 |  |  |       mounted() { | 
 |  |  | 
 |  |  |          const BaseLedId = uni.getStorageSync('BaseLedId'); | 
 |  |  |          const BasePort = uni.getStorageSync('BasePort'); | 
 |  |  |          const BaseCrnId = uni.getStorageSync('BaseCrnId'); | 
 |  |  |          if (BaseIP && BaseLedId) { | 
 |  |  |             that.baseIP = BaseIP | 
 |  |  |             that.baseLedId = BaseLedId | 
 |  |  |             that.basePort = BasePort | 
 |  |  |             that.baseCrnId = BaseCrnId | 
 |  |  |          } else { | 
 |  |  |             that.baseUrl = '' | 
 |  |  |             that.baseLedId = '' | 
 |  |  |          } | 
 |  |  |          this.commonUrl = this.baseHttp + this.baseIP + ':' +this.basePort + this.baseUrl | 
 |  |  |          this.getUrl() | 
 |  |  |       }, | 
 |  |  |       onLoad() { | 
 |  |  | 			 | 
 |  |  |       }, | 
 |  |  |       onReady() { | 
 |  |  |          // 获得初始数据 | 
 |  |  |          setTimeout(() => { | 
 |  |  |          setInterval(() => { | 
 |  |  |             // 获得初始数据 | 
 |  |  |             this.initlineChart(); | 
 |  |  |             this.initPieChart(); | 
 |  |  |          }, 0); | 
 |  |  |          setTimeout(() => { | 
 |  |  |             // 主页信息 | 
 |  |  |             this.getServerData(); | 
 |  |  |             this.getOther(); | 
 |  |  |             this.getPakin(); | 
 |  |  |          }, 1000); | 
 |  |  |          setInterval(() => { | 
 |  |  |             // 其他信息 | 
 |  |  |             this.getDate(); | 
 |  |  |             this.getPakin(); | 
 |  |  |             this.getError(); | 
 |  |  |             // this.getYYY(); | 
 |  |  |             // this.getEEE(); | 
 |  |  |             this.animation(); | 
 |  |  |             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 | 
 |  |  | 
 |  |  |             // 测试用 ↑ | 
 |  |  |             // 返回结果有值 且值不等于空值 就是有错误信息需要展示 | 
 |  |  |             if (res.data && res.data !== "") { | 
 |  |  | 					 | 
 |  |  |                that.errorMsg = res.data | 
 |  |  |                that.errorShow = true | 
 |  |  |                that.move = false // 显示 | 
 |  |  | 
 |  |  |             let   res = result.data | 
 |  |  |                   // 测试用 ↑ | 
 |  |  |                if(res.data && res.data !== null) { | 
 |  |  |                   // that.move = false | 
 |  |  |                   // title | 
 |  |  |                   if (res.data[0].ioType === 101) { | 
 |  |  |                      that.title = '全板出库' | 
 |  |  |                   } else if(res.data[0].ioType === 103) { | 
 |  |  | 
 |  |  |                   that.doneOfUnit = '已出箱数:' + res.data[0].doneOfUnit | 
 |  |  |                   that.totalOfUnit = '总箱数:' + res.data[0].totalOfUnit | 
 |  |  |                   if (that.errorShow) { | 
 |  |  |                            // that.pakinShow = false | 
 |  |  |                            return; | 
 |  |  |                         } else { | 
 |  |  |                            that.newspaper = newsData | 
 |  |  | 
 |  |  |                } | 
 |  |  |                 | 
 |  |  |                 | 
 |  |  |                // if(res.data && res.data !== null) { | 
 |  |  |                //    if (res.data[0].matDtos.length > 0) { | 
 |  |  |                //       that.pakinShow = true | 
 |  |  |                //       that.pakinGun = true | 
 |  |  |                //       if (res.data[0].ioType === 101) { | 
 |  |  |                //          that.title = '全板出库' | 
 |  |  |                //       } else if(res.data[0].ioType === 103) { | 
 |  |  |                //          that.title = '拣料出库' | 
 |  |  |                //       } | 
 |  |  | 							 | 
 |  |  |                //       if (res.data[0].orderNo) { | 
 |  |  |                //          that.orderNo = "订单号:" + res.data[0].orderNo | 
 |  |  |                //          that.swiper = 'swiper-here-oN' | 
 |  |  |                //          that.orderShow = true | 
 |  |  |                //       } else { | 
 |  |  |                //          that.orderNo = null; | 
 |  |  |                //          that.swiper = 'swiper-here' | 
 |  |  |                //          that.orderShow = false | 
 |  |  |                //       } | 
 |  |  |                //       that.staNo = '目标站' + res.data[0].staNo | 
 |  |  |                //       for (var i = 0; i < res.data[0].matDtos.length; i++) { | 
 |  |  |                //          var matnr = res.data[0].matDtos[i].matnr + ' - ' + res.data[0].matDtos[i].batch  | 
 |  |  |                //          that.matList.push(matnr) | 
 |  |  |                //       } | 
 |  |  |                // 		 | 
 |  |  |                //       if (res.data[0].matDtos.length <= 8) { | 
 |  |  |                //          that.errorShow = true | 
 |  |  |                //          that.pakinShow = true | 
 |  |  |                //          that.pakinGun  = false | 
 |  |  |                //       } | 
 |  |  |                //    } else { | 
 |  |  |                //       that.move = true | 
 |  |  |                //       } | 
 |  |  |                // } else { | 
 |  |  |                //    that.move = true | 
 |  |  |                // } | 
 |  |  |          }, | 
 |  |  |          // 获取错误信息 | 
 |  |  |          getError() { | 
 |  |  | 
 |  |  |                }, | 
 |  |  |                method:'GET', | 
 |  |  |                success(result) { | 
 |  |  |                   // console.log(result); | 
 |  |  |                   res = result.data  | 
 |  |  |                   if (res.data && res.data !== "") { | 
 |  |  |                      that.errorMsg = res.data | 
 |  |  | 
 |  |  |                      that.move = false // 显示 | 
 |  |  |                   } else { | 
 |  |  |                      that.errorShow = false | 
 |  |  |                      if (that.pakinShow) { | 
 |  |  |                         return; | 
 |  |  |                      } else { | 
 |  |  |                         that.move = true // 隐藏 | 
 |  |  |                      } | 
 |  |  |                      // if (that.pakinShow) { | 
 |  |  |                      //    return; | 
 |  |  |                      // } else { | 
 |  |  |                      //    // that.move = true // 隐藏 | 
 |  |  |                      // } | 
 |  |  |                   } | 
 |  |  |                } | 
 |  |  |             }); | 
 |  |  | 
 |  |  |                }, | 
 |  |  |                method:'GET', | 
 |  |  |                success(result) { | 
 |  |  |                   console.log(result); | 
 |  |  |                   res = result.data | 
 |  |  |                   if (that.errorShow) { | 
 |  |  |                      return;  // 有错误信息 | 
 |  |  |                   }  | 
 |  |  |                   if(res.data && res.data !== null) { | 
 |  |  |                      // that.move = false | 
 |  |  |                      // title | 
 |  |  |                      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.totalOfTray = '托盘总数量:' + res.data[0].totalOfTray | 
 |  |  |                      that.doneOfUnit = '已出箱数:' + res.data[0].doneOfUnit | 
 |  |  |                      that.totalOfUnit = '总箱数:' + res.data[0].totalOfUnit | 
 |  |  |                      if (that.errorShow) { | 
 |  |  |                         // that.pakinShow = false | 
 |  |  |                         return; | 
 |  |  |                      } else { | 
 |  |  |                         that.newspaper = newsData | 
 |  |  |                         that.move = false | 
 |  |  |                      } | 
 |  |  |                      that.newspaper = newsData | 
 |  |  |                      that.move = false | 
 |  |  |                   }else { | 
 |  |  |                         that.move = true | 
 |  |  |                      that.move = true | 
 |  |  |                   } | 
 |  |  |                } | 
 |  |  |             }); | 
 |  |  |          }, | 
 |  |  |          animation() { | 
 |  |  |             if (this.move) { | 
 |  |  |                // 上层向上 / 下层向上 | 
 |  |  |             if (this.move) {  | 
 |  |  |                this.topMove = 'topUp' | 
 |  |  |                this.floorMove = 'floorUp' | 
 |  |  |             } else { | 
 |  |  |                // 上层向下 / 下层向下 | 
 |  |  |                this.topMove = 'topDown' | 
 |  |  |                this.floorMove = 'floorDown' | 
 |  |  |             } | 
 |  |  | 
 |  |  |                url: that.commonUrl + "/monitor/line/charts", | 
 |  |  |                method:'GET', | 
 |  |  |                success(result) { | 
 |  |  |                   // console.log(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), | 
 |  |  | 
 |  |  |                   ledId: 1, | 
 |  |  |                }, | 
 |  |  |                success(result) { | 
 |  |  |                   console.log(result); | 
 |  |  |                   var res = result.data | 
 |  |  |                   if (res.code === 200) { | 
 |  |  |                      that.xDistance = res.data.xDistance | 
 |  |  | 
 |  |  |                } | 
 |  |  |             }) | 
 |  |  |          }, | 
 |  |  |          port() { | 
 |  |  |             this.$refs.port.open() | 
 |  |  |          ejected () { | 
 |  |  |             this.ejectShow = true | 
 |  |  |          }, | 
 |  |  |          url() { | 
 |  |  |             this.$refs.url.open() | 
 |  |  |          }, | 
 |  |  |          ledId() { | 
 |  |  |             this.$refs.ledId.open() | 
 |  |  |          }, | 
 |  |  |          crn() { | 
 |  |  |             this.$refs.crnId.open() | 
 |  |  |          }, | 
 |  |  |          baseUrlConfirm(val) { | 
 |  |  |             this.baseIp = val | 
 |  |  |             uni.setStorageSync('BaseIp', this.baseIp); | 
 |  |  |          }, | 
 |  |  |          ledIdConfirm(val) { | 
 |  |  |             this.baseLedId = val | 
 |  |  |          // 弹出层确认 | 
 |  |  |          ejectConfirm() { | 
 |  |  |             uni.setStorageSync('BaseIp', this.baseIP); | 
 |  |  |             uni.setStorageSync('BaseLedId', this.baseLedId); | 
 |  |  |          }, | 
 |  |  |          portConfirm(val) { | 
 |  |  |             this.basePort = val | 
 |  |  |             uni.setStorageSync('BasePort',this.basePort); | 
 |  |  |          }, | 
 |  |  |          crnConfirm(val) { | 
 |  |  |             this.baseCrnId = val | 
 |  |  |             uni.setStorageSync('BaseCrnId',this.baseCrnId); | 
 |  |  |             this.getUrl() | 
 |  |  |             this.ejectShow = false | 
 |  |  |          }, | 
 |  |  |          // 弹出层取消 | 
 |  |  |          ejectClose() { | 
 |  |  |             this.ejectShow = false | 
 |  |  |          }, | 
 |  |  |          getServerData() { | 
 |  |  |             this.chartsDataLine1=JSON.parse(JSON.stringify(this.chartsData.Line)) | 
 |  |  | 
 |  |  | </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%; |