#
whycq
2024-10-12 06a379fede6fd3c5cbb6c4f72fe6dde87e03c8af
Monitor-APP/pages/home/home.vue
@@ -3,7 +3,7 @@
      <uni-transition :duration="duration" :mode-class="homeMode" :show="homeViewShow">
         <view class="home-view">
            <view class="head">
               <text>自动仓库WCS监控平台</text>
               <text>中扬智能大屏显示系统</text>
            </view>
            <!-- 日历 -->
            <view class="time-tools">{{calendar}}</view>
@@ -15,19 +15,59 @@
                  <view class="mian-item-box">
                     <y-box>
                        <view class="box-item">
                           <text class="item-title">提升机运行数据</text>
                           <text class="item-subTitle">Hoist operating data</text>
                           <view style="width: 100%;height: 25vh;">
                              <qiun-data-charts type="column" :chartData="chartsDataLine2" :opts="opts" :echartsH5="true" :echartsApp="true"/>
                           </view>
                           <text class="item-title">中扬智能大屏显示系统</text>
                           <text class="item-subTitle">Automatic Storageand Retrieval System</text>
                           <text class="item-text" style="text-align: left;">利用立体仓库设备可实现仓库高层合理化、存取自动化、操作简便化;自动化立体仓库是当前技术水平较高的形式。自动化立体仓库的主体由货架、巷道式堆垛起重机、入(出)库工作台和自动运进(出)及操作控制系统组成。货架是钢结构或钢筋混凝土结构的建筑物或结构体,货架内是标准尺寸的货位空间,巷道堆垛起重机穿行于货架之间的巷道中,完成存、取货的工作。管理上采用计算机及条形码技术。</text>
                        </view>
                        <view class="box-item">
                           <text class="item-title">穿梭车运行数据</text>
                           <text class="item-subTitle">Shuttle operation data</text>
                           <text class="item-title">仓库数据</text>
                           <text class="item-subTitle">warehouse data</text>
                           <view class="img-box">
                              <view style="width: 100%;height: 25vh;">
                                  <qiun-data-charts  type="ring" :chartData="chartsDataPie3" />
                              <view class="item-img">
                                 <image src="../../static/a1.png" mode="aspectFit"></image>
                                 <view class="flex-col" style="width: calc(100% - 5vw);">
                                    <view class="flex-row" style="position: relative;" >
                                       <view style="width: 2vw;padding-left: 2vw;;font-size: 2vw;">{{baseInfo.xDistance}}</view>
                                       <view style="position: absolute;bottom: 0;left: 10vw;">KM</view>
                                    </view>
                                    <view style="height: 100%;text-align: left;text-indent: 2em;">累计走行距离(千米)</view>
                                 </view>
                              </view>
                              <view class="item-img">
                                 <image src="../../static/b1.png" mode="aspectFit"></image>
                                 <view class="flex-col" style="width: calc(100% - 5vw);">
                                    <view class="flex-row" style="position: relative;" >
                                       <view style="width: 2vw;padding-left: 2vw;;font-size: 2vw;">{{baseInfo.yDistance}}</view>
                                       <view style="position: absolute;bottom: 0;left: 10vw;">KM</view>
                                    </view>
                                    <view style="height: 100%;text-align: left;text-indent: 2em;">累计升降距离(千米)</view>
                                 </view>
                              </view>
                              <view class="item-img">
                                 <image src="../../static/c1.png" mode="aspectFit"></image>
                                 <view class="flex-col" style="width: calc(100% - 5vw);">
                                    <view class="flex-row" style="position: relative;" >
                                       <view style="-width: 2vw;padding-left: 2vw;;font-size: 2vw;">{{baseInfo.xDuration}}</view>
                                       <view style="position: absolute;bottom: 0;left: 10vw;">H</view>
                                    </view>
                                    <view style="height: 100%;text-align: left;text-indent: 2em;">累计走行时长(小时)</view>
                                 </view>
                              </view>
                              <view class="item-img">
                                 <image src="../../static/d1.png" mode="aspectFit"></image>
                                 <view class="flex-col" style="width: calc(100% - 5vw);">
                                    <view class="flex-row" style="position: relative;" >
                                       <view style="width: 2vw;padding-left: 2vw;;font-size: 2vw;">{{baseInfo.yDuration}}</view>
                                       <view style="position: absolute;bottom: 0;left: 10vw;">H</view>
                                    </view>
                                    <view style="height: 100%;text-align: left;text-indent: 2em;">累计升降时长(小时)</view>
                                 </view>
                              </view>
                           </view>
                        </view>
                        <view class="box-item">
@@ -50,7 +90,7 @@
                           
                           <view class="flex-col" style="width: 100%;align-items: flex-start;position: relative;font-size: 1vw">
                              <!-- 进度条 -->
                              <view class="flex-row" style="width: 100%;position: relative;">
                              <view class="flex-row" style="width: 100%;position: relative;margin-top: 5%;">
                                 <view class="progressBar" style="width: 80%;height: 2vw;">
                                    <view class="progress" :style="'width:'+ baseInfo.usedPr + '%'"></view>
                                 </view>
@@ -146,7 +186,7 @@
                        <view style="height: 18%;">
                           <y-box>
                              <view class="flex-col" style="width: 100%;height: 100%;font-size: 4vh;justify-content: center;letter-spacing: 1vh;">
                                 自动仓库WCS监控平台
                                 中扬智能大屏显示系统
                              </view>
                           </y-box>
                        </view>
@@ -169,8 +209,8 @@
            <view class="button-right" @click="ejected()"></view>
            <!-- 主体 -->
            <view class="info-main">
               <view class="info-box">
                  <y-box>
               <view class="info-box" style="display: flex;overflow: hidden;">
                  <y-box v-for="info in infoText">
                     <!-- 文本容器 -->
                     <view class="text-content">
                        <!-- head -->
@@ -178,12 +218,10 @@
                           <view style="flex: 1;">作业数量:{{infoText.barcode}}</view>
                           <view style="flex: 1;">剩余数量</view>
                        </view> -->
                        <view class="swiper-head" v-show="swiperList.length > 0">
                           <view style="flex: 2;">托盘码:{{infoText.barcode}} <br /> 订单号</view>
                           <view style="flex: 2;">{{infoText.title2}} <br />商品编号</view>
                           <view style="flex: 2;">箱码</view>
                        <view class="swiper-head">
                           <view style="flex: 2;">托盘码:{{info.barcode}} <br /> 物料号</view>
                           <view style="flex: 2;">{{info.staNo}}-站点 <br />类别</view>
                           <view style="flex: 2;">商品名称</view>
                           <view style="flex: 5;">规格</view>
                           <view style="flex: 1;">作业数量</view>
                           <view style="flex: 1;">剩余数量</view>
                        </view>
@@ -193,15 +231,15 @@
                           circular 是否采用衔接滑动,即播放到末尾后重新回到开头
                           vertical 滑动方向是否为纵向 
                           display-multiple-items 同时显示的滑块数量 -->
                           <swiper class="swiper-body-main" vertical="true"
                           display-multiple-items="15"
                           circular="true" :autoplay="true" :interval="3000" :duration="1000">
                              <swiper-item class="swiper-item" v-for="(item,i) in swiperList" :key="i" :style="item.color">
                                 <view style="flex: 2;word-break: break-all;">{{item.orderNo ? item.orderNo : '--'}}</view>
                           <swiper class="swiper-body-main" vertical="true" display-multiple-items="5"
                              circular="true" :autoplay="true" :interval="3000" :duration="1000">
                              <swiper-item class="swiper-item" v-for="(item,i) in info.matDtos" :key="i"
                                 :style="item.color">
                                 <view style="flex: 2;word-break: break-all;">
                                    {{item.matNo ? item.matNo : '--'}}
                                 </view>
                                 <view style="flex: 2;">{{item.matNo}}</view>
                                 <view style="flex: 2;">{{item.containerCode}}</view>
                                 <view style="flex: 2;">{{item.maknx}}</view>
                                 <view style="flex: 5;">{{item.specs}}</view>
                                 <view style="flex: 1;">{{item.count}}</view>
                                 <view style="flex: 1;">{{item.total}}</view>
                              </swiper-item>
@@ -224,7 +262,7 @@
            <view class="button-left"></view>
            <view class="button-right"></view>
            <!-- 主体 -->
            <view class="info-main" >
            <view class="info-main">
               <view class="info-box">
                  <y-box>
                     <view class="info-box-text">
@@ -235,7 +273,7 @@
            </view>
         </view>
      </uni-transition>
      <!-- 自定义弹出层 -->
      <view class="eject-mask" v-show="ejectShow">
         <view class="eject">
@@ -284,15 +322,22 @@
      <!-- 小车异常 -->
      <view class="board">
         <uni-transition ref="ani" custom-class="transition" :mode-class="newModeClass" :show="errorBoardShow">
            <view class="error-board" >
               <text v-for="item in carInfo">{{item}}</text>
            <view class="error-board">
               <text>{{infoText.error}}</text>
            </view>
         </uni-transition>
      </view>
      <view style="color: #FFF;position: fixed;bottom: 10px;left: 10px;" v-show="timeOut">
         连接超时: {{times}} s
      </view>
      <!-- 版本号 -->
      <!-- #ifdef APP-PLUS -->
      <view class="version">
         当前版本:{{version}}
      </view>
      <!-- #endif -->
   </view>
</template>
<!-- {"msg":"操作成功","code":200,"data":[{"title":"全板出库","workNo":7460,"staNo":110,"sourceStaNo":null,"locNo":null,"sourceLocNo":"0807102","matDtos":[{"matNo":"50460834","maknx":"200x60桌面","count":26.0}],"emptyMk":false,"ioType":101}]} -->
@@ -302,12 +347,13 @@
   export default {
      data() {
         return {
            version: '1231313',
            newModeClass: 'slide-top',
            errorBoardShow: false,
            carInfo: [],
            series: [],
            homeViewShow: true,
            infoViewShow: false   ,
            infoViewShow: false,
            errorInfoViewShow: false,
            homeMode: [],
            infoMode: [],
@@ -332,6 +378,10 @@
                  "categories": [],
                  "series": []
               },
               "Line3": {
                  "categories": [],
                  "series": []
               },
               "Pie": {
                  "series": [{
                     "data": []
@@ -340,10 +390,11 @@
            },
            duration: 1000,
            calendar: '',
            ringOpts:{},
            ringOpts: {},
            chartsDataLine1: {},
            chartsDataLine2: {},
            chartsDataPie2: {},
            chartsDataPie3: {},
            fontSize: '',
            height: '',
            showCharts: false,
@@ -357,7 +408,7 @@
            error: null,
            infoType: 0,
            text: '',
            infoText: {
            infoText: [{
               title: '自动仓库WCS监控平台',
               title2: '',
               staNo: "",
@@ -374,44 +425,88 @@
               doneOfUnit: '',
               totalOfUnit: '',
               ctnNo: '1'
            },
            }],
            swiperList: [],
            timeOut: false,
            times: 0,
            currDate: '',
            textred: 'textred',
            opts: {
               rotate: false,
               rotateLock: false,
               color: ["#1890FF","#91CB74","#FAC858","#EE6666","#73C0DE","#3CA272","#FC8452","#9A60B4","#ea7ccc"],
               padding: [5,5,5,5],
            opts1: {
               fontSize: 8,
               dataLabel: true,
               enableScroll: false,
               fontColor: "#ffffff",
               legend: {
                 show: true,
                 position: "right",
                 lineHeight: 25
                  show: true,
                  fontColor: "#ffffff",
               },
               title: {
                 name: "收益率",
                 fontSize: 15,
                 color: "#FFF"
               xAxis: {
                  disableGrid: true,
                  fontColor: "#ffffff",
                  fontSize: 8,
                  axisLineColor: "#ffffff",
               },
               subtitle: {
                 name: "70%",
                 fontSize: 25,
                 // color: "#7cb5ec"
               yAxis: {
                  gridColor: "#ffffff",
               },
               extra: {
                  ring: {
                     ringWidth: 60,
                     activeOpacity: 0.5,
                     activeRadius: 10,
                     offsetAngle: 0,
                     labelWidth: 15,
                     border: true,
                     // borderWidth: 3,
                     borderColor: "#FFFFFF"
                  column: {
                     type: "group",
                     width: 30,
                     activeBgColor: "#000000",
                     activeBgOpacity: 0.08,
                     labelPosition: "center"
                  }
               }
            },
            opts: {
               color: ["#73C0DE", "#91CB74", "#FAC858", "#EE6666", "#73C0DE", "#3CA272", "#FC8452", "#9A60B4",
                  "#ea7ccc"
               ],
               fontColor: "#ffffff",
               fontSize: 8,
               padding: [15, 15, 0, 5],
               enableScroll: false,
               legend: {},
               xAxis: {
                  disableGrid: true,
                  fontColor: "#ffffff",
                  fontSize: 8,
                  axisLineColor: "#ffffff",
               },
               yAxis: {
                  data: [{
                     min: 0
                  }]
               },
               extra: {
                  column: {
                     type: "stack",
                     width: 50,
                     activeBgColor: "#000000",
                     activeBgOpacity: 0.08,
                     labelPosition: "center"
                  }
               },
            },
            opts3: {
               fontSize: 8,
               fontColor: "#ffffff",
               xAxis: {
                  fontColor: "#ffffff",
                  fontSize: 8,
               }
            },
            opts4: {
               fontColor: "#ffffff",
               fontSize: 8,
               legend: {
                  show: true,
                  position: "bottom",
                  fontColor: "#FFFFFF",
               },
               extra: {
                  pie: {
                     borderColor: "rgba(0,0,0,0)",
                  }
               }
            }
@@ -419,9 +514,9 @@
      },
      onShow() {
         // 隐藏时间,电量,信号等
         // #ifdef APP-PLUS
         plus.navigator.setFullscreen(true)
         // #endif
         // // #ifdef APP-PLUS
         // plus.navigator.setFullscreen(true)
         // // #endif
      },
      mounted() {
         let that = this
@@ -435,69 +530,116 @@
         that.baseLedId = BaseLedId
         that.basePort = BasePort
         that.baseCrnId = BaseCrnId
         // this.getVersion()
         this.getDate2()
         setTimeout(()=>{
            this.getServerData()
         setTimeout(() => {
            this.getShuttle()
            // this.initlineChart()
            // this.initPieChart()
            // this.getOther()
            setTimeout(()=>{
            this.getServerData()
            this.initlineChart()
            this.initPieChart()
            this.getOther()
            setTimeout(() => {
               this.getShuttle()
               this.getServerData()
               // this.initlineChart()
               // this.initPieChart()
               // this.getOther()
               setTimeout(()=>{
                  // this.getServerData()
                  // this.initlineChart()
                  // this.initPieChart()
                  // this.getOther()
               },3000)
            },1000)
         },1000)
               this.initlineChart()
               this.initPieChart()
               this.getOther()
            }, 2000)
         }, 1000)
      },
      onLoad() {
         setInterval(()=>{
            // this.getServerData()
         setInterval(() => {
            this.getServerData()
            this.getDate2()
            this.getUrl()
            // this.getInfo()
            // this.getError()
            this.getInfo()
            this.getError()
            // this.getCarInfo()
            // this.getCarInfoTest()
            // this.getInfo2()
            // this.getError2()
            this.controller()
         },1000)
         }, 1000)
         // setInterval(()=>{
         //    this.changeErrorShow()
         // },5000)
         setInterval(() => {
            this.getServerData()
            this.initlineChart()
            this.initPieChart()
            this.getOther()
         }, 600000)
         
         setInterval(()=>{
            // this.getServerData()
            // this.initlineChart()
            // this.initPieChart()
            // this.getOther()
         },600000)
         // // #ifdef APP-PLUS
         //    setTimeout(()=>{
         //       plus.runtime.restart()
         //    },28800000)
         // // #endif
      },
      methods: {
         getShuttle() {
         getVersion() {
            let that = this
            plus.runtime.getProperty(plus.runtime.appid, (wgtinfo) => {
               that.version = wgtinfo.version //客户端版本号
            })
         },
         getShuttleTest() {
            let res = ycqdata.infoData2.data
            this.shuttleInfoModel(res)
         },
         getShuttle() {
            let that = this
            uni.request({
               url: that.commonUrl + "/monitor/deviceRunStatistic",
               method: "GET",
               success(result) {
                  var res = result.data
                  that.shuttleInfoModel(res)
               }
            })
         },
         shuttleInfoModel(res) {
            if (res.code == 200 && res.data != '') {
               let arr = []
               for (let k of res.data.shuttle) {
                  arr.push(k.count)
               let shuttleSeriesData = []
               let shuttleCategories = []
               let shuttleSeries = []
               let shuttleData = {
                  name: "穿梭车运行次数",
                  textColor: "#FFFFFF",
                  data: null
               }
               this.chartsData.Line2.series = arr
               for (let k of res.data.shuttle) {
                  shuttleSeriesData.push(k.count)
                  shuttleCategories.push(k.shuttle_no)
               }
               shuttleData.data = shuttleSeriesData
               shuttleSeries.push(shuttleData)
               this.chartsData.Line2.categories = shuttleCategories
               this.chartsData.Line2.series = shuttleSeries
               let liftSeriesData = []
               let liftCategories = []
               let liftSeries = []
               let liftData = {
                  name: "提升机运行次数",
                  textColor: "#FFFFFF",
                  data: null
               }
               for (let k of res.data.lift) {
                  liftSeriesData.push(k.count)
                  liftCategories.push(k.lift_no)
               }
               liftData.data = liftSeriesData
               liftSeries.push(liftData)
               this.chartsData.Line3.categories = liftCategories
               this.chartsData.Line3.series = liftSeries
            } else {
            }
         },
         changeErrorShow() {
@@ -506,23 +648,23 @@
         getCarInfoTest() {
            let that = this
            var result = ycqdata.carError
            var   res = result.data
            var res = result.data
            that.carInfoModel(res)
         },
         getCarInfo() {
            let that = this
            uni.request({
               url: that.commonUrl + "/monitor/device/error",
               method:"GET",
               method: "GET",
               success(result) {
                  var   res = result.data
                  var res = result.data
                  that.carInfoModel(res)
               }
            })
         },
         carInfoModel(res) {
            let infoList = []
            if (res.code == 200 && res.data != '') {
               let str = ''
               for (let k of res.data) {
@@ -539,90 +681,71 @@
            console.log(this.times);
         },
         getUrl() {
            this.commonUrl = this.baseHttp + this.baseIP + ':' +this.basePort + "/" +this.baseUrl
            this.commonUrl = this.baseHttp + this.baseIP + ':' + this.basePort + "/" + this.baseUrl
         },
         getServerData() {
            // this.chartsDataLine1=JSON.parse(JSON.stringify(this.chartsData.Line))
            // this.chartsDataPie2=JSON.parse(JSON.stringify(this.chartsData.Pie))
            this.chartsDataLine1=JSON.parse(JSON.stringify(demodata.Line))
            this.chartsDataPie2=JSON.parse(JSON.stringify(demodata.Pie))
            this.chartsDataLine2=JSON.parse(JSON.stringify(demodata.Line))
            this.chartsDataPie3=JSON.parse(JSON.stringify(demodata.Pie))
            this.chartsDataLine1 = JSON.parse(JSON.stringify(this.chartsData.Line))
            this.chartsDataPie2 = JSON.parse(JSON.stringify(this.chartsData.Pie))
            // this.chartsDataLine1 = JSON.parse(JSON.stringify(demodata.Line))
            // this.chartsDataPie2 = JSON.parse(JSON.stringify(demodata.Pie))
            this.chartsDataLine2 = JSON.parse(JSON.stringify(this.chartsData.Line2))
            this.chartsDataPie3 = JSON.parse(JSON.stringify(this.chartsData.Line3))
         },
         // 获取错误信息
         getInfo2() {
            let that = this
            var result = ycqdata.dataInfo2
            var   res = result.data
            var res = result.data
            that.infoModel(res)
         },
         getError2 () {
         getError2() {
            let that = this
            let result = ycqdata.dataError2
            var   res = result.data
            if (res.data && res.data !== "") {
               var errorInfo = res.data
               if (that.infoType == 1) {
                  that.infoType = 3
                  that.infoText.title = "异常"
                  that.infoText.error = errorInfo
                  return
               }
               that.infoType = 2
               that.infoText.title = "异常"
               that.infoText.error = errorInfo
            var res = result.data
            if (res.code == 200 && res.data != '') {
               that.infoText.title = "其他信息"
               that.infoText.error = res.data
               this.errorBoardShow = true
            } else {
               if (that.infoType == 1) {
                  return
               }
               that.infoType = 0
               this.errorBoardShow = false
            }
         },
         getInfo() {
            let that = this
            uni.request({
               url: that.commonUrl + "/monitor/led",
               method:"GET",
               data: {ledId:that.baseLedId},
               method: "GET",
               data: {
                  ledId: that.baseLedId
               },
               success(result) {
                  var   res = result.data
                  var res = result.data
                  that.infoModel(res)
               }
            })
         },
         getError() {
            let that = this
            uni.request({
               url: that.commonUrl + "/monitor/led/error",
               data: {ledId:that.baseLedId},
               method:"GET",
               data: {
                  ledId: that.baseLedId
               },
               method: "GET",
               success(result) {
                  var   res = result.data
                  if (res.data && res.data !== "") {
                     var errorInfo = res.data
                     if (that.infoType == 1) {
                        that.infoType = 3
                        that.infoText.title = "其他信息"
                        // that.infoText.title = "异常"
                        that.infoText.error = errorInfo
                        return
                     }
                     that.infoType = 2
                  var res = result.data
                  if (res.code == 200 && res.data != '') {
                     that.infoText.title = "其他信息"
                     // that.infoText.title = "异常"
                     that.infoText.error = errorInfo
                     that.infoText.error = res.data
                     that.errorBoardShow = true
                  } else {
                     if (that.infoType == 1) {
                        return
                     }
                     that.infoText.title = '自动仓库WCS监控平台'
                     that.infoType = 0
                     that.errorBoardShow = false
                  }
               }
            })
         },
         infoModel(res) {
            let that = this
@@ -632,26 +755,9 @@
               }
               // infoType1:只有拣料等信息
               that.infoType = 1
               if (res.data[0].ioType === 101) {
                  that.infoText.title = '全板出库'
                  that.infoText.title2 = '全板出库'
               } else if(res.data[0].ioType === 103) {
                  that.infoText.title = '检料出库'
                  that.infoText.title2 = '检料出库'
               } else if(res.data[0].ioType === 107) {
                  that.infoText.title = '盘点出库'
                  that.infoText.title2 = '盘点出库'
               }
               res.data[0].matDtos
               for(let k in res.data[0].matDtos) {
                  if(res.data[0].matDtos[k].count == 0) {
                     res.data[0].matDtos[k]['color'] = 'color: #df741c'
                  }
               }
               that.infoText.staNo = res.data[0].staNo
               that.infoText.barcode = res.data[0].barcode
               that.swiperList = res.data[0].matDtos
               that.infoText = res.data
               that.infoText.title = '站点出库'
            } else {
               if (that.infoType == 2 || that.infoType == 3) {
                  return;
@@ -661,22 +767,22 @@
            }
         },
         controller2() {
            switch(this.infoType) {
               case 1:
            switch (this.infoType) {
               case 1:
                  if (this.homeViewShow) {
                     this.homeViewShow = false
                     this.homeMode = ['fade', 'slide-bottom']
                     setTimeout(()=>{
                     setTimeout(() => {
                        this.infoViewShow = true
                        this.infoMode = ['fade', 'slide-bottom']
                     },1000)
                     }, 1000)
                  } else if (this.errorInfoViewShow) {
                     this.errorInfoViewShow = false
                     this.errorInfoMode = ['fade', 'slide-bottom']
                     setTimeout(()=>{
                     setTimeout(() => {
                        this.infoViewShow = true
                        this.infoMode = ['fade', 'slide-bottom']
                     },1000)
                     }, 1000)
                  }
                  return;
                  // 有信息 且 有错误信息
@@ -684,126 +790,126 @@
                  if (this.homeViewShow) {
                     this.homeViewShow = false
                     this.homeMode = ['fade', 'slide-bottom']
                     setTimeout(()=>{
                     setTimeout(() => {
                        this.errorInfoViewShow = true
                        this.errorInfoMode = ['fade', 'slide-bottom']
                     },1000)
                     }, 1000)
                  } else if (this.infoViewShow) {
                     this.infoViewShow = false
                     this.infoMode = ['fade', 'slide-bottom']
                     setTimeout(()=>{
                     setTimeout(() => {
                        this.errorInfoViewShow = true
                        this.errorInfoMode = ['fade', 'slide-bottom']
                     },1000)
                     }, 1000)
                  }
                  return;
               // 有信息 且 有错误信息
                  // 有信息 且 有错误信息
               case 3:
                  if (this.homeViewShow) {
                     this.homeViewShow = false
                     this.homeMode = ['fade', 'slide-bottom']
                     setTimeout(()=>{
                     setTimeout(() => {
                        this.errorInfoViewShow = true
                        this.errorInfoMode = ['fade', 'slide-bottom']
                     },1000)
                     }, 1000)
                  } else if (this.infoViewShow) {
                     this.infoViewShow = false
                     this.infoMode = ['fade', 'slide-bottom']
                     setTimeout(()=>{
                     setTimeout(() => {
                        this.errorInfoViewShow = true
                        this.errorInfoMode = ['fade', 'slide-bottom']
                     },1000)
                     }, 1000)
                  }
                  return;
            }
         },
         // 控制器
         controller() {
            switch(this.infoType) {
            switch (this.infoType) {
               // 有信息 但 没有错误信息
               case 0:
               case 0:
                  if (this.errorInfoViewShow) {
                     this.errorInfoViewShow = false
                     this.errorInfoMode = ['fade', 'slide-bottom']
                     setTimeout(()=>{
                     setTimeout(() => {
                        this.homeViewShow = true
                        this.homeMode = ['fade', 'slide-bottom']
                     },1000)
                     }, 1000)
                  } else if (this.infoViewShow) {
                     this.infoViewShow = false
                     this.infoMode = ['fade', 'slide-bottom']
                     setTimeout(()=>{
                     setTimeout(() => {
                        this.homeViewShow = true
                        this.homeMode = ['fade', 'slide-bottom']
                     },1000)
                     }, 1000)
                  } else if (this.errorInfoViewShow && this.infoViewShow) {
                     this.errorInfoViewShow = false
                     this.infoViewShow = false
                     this.infoMode = ['fade', 'slide-bottom']
                     setTimeout(()=>{
                     setTimeout(() => {
                        this.homeViewShow = true
                        this.homeMode = ['fade', 'slide-bottom']
                     },1000)
                     }, 1000)
                  }
                  return;
               case 1:
               case 1:
                  if (this.homeViewShow) {
                     this.homeViewShow = false
                     this.homeMode = ['fade', 'slide-bottom']
                     setTimeout(()=>{
                     setTimeout(() => {
                        this.infoViewShow = true
                        this.infoMode = ['fade', 'slide-bottom']
                     },1000)
                     }, 1000)
                  } else if (this.errorInfoViewShow) {
                     this.errorInfoViewShow = false
                     this.errorInfoMode = ['fade', 'slide-bottom']
                     setTimeout(()=>{
                     setTimeout(() => {
                        this.infoViewShow = true
                        this.infoMode = ['fade', 'slide-bottom']
                     },1000)
                     }, 1000)
                  }
                  return;
                  // 有信息 且 有错误信息
               case 2:
                  if (this.homeViewShow) {
                     this.homeViewShow = false
                     this.homeMode = ['fade', 'slide-bottom']
                     setTimeout(()=>{
                     setTimeout(() => {
                        this.errorInfoViewShow = true
                        this.errorInfoMode = ['fade', 'slide-bottom']
                     },1000)
                     }, 1000)
                  } else if (this.infoViewShow) {
                     this.infoViewShow = false
                     this.infoMode = ['fade', 'slide-bottom']
                     setTimeout(()=>{
                     setTimeout(() => {
                        this.errorInfoViewShow = true
                        this.errorInfoMode = ['fade', 'slide-bottom']
                     },1000)
                     }, 1000)
                  }
                  return;
               // 有信息 且 有错误信息
                  // 有信息 且 有错误信息
               case 3:
                  if (this.homeViewShow) {
                     this.homeViewShow = false
                     this.homeMode = ['fade', 'slide-bottom']
                     setTimeout(()=>{
                     setTimeout(() => {
                        this.errorInfoViewShow = true
                        this.errorInfoMode = ['fade', 'slide-bottom']
                     },1000)
                     }, 1000)
                  } else if (this.infoViewShow) {
                     this.infoViewShow = false
                     this.infoMode = ['fade', 'slide-bottom']
                     setTimeout(()=>{
                     setTimeout(() => {
                        this.errorInfoViewShow = true
                        this.errorInfoMode = ['fade', 'slide-bottom']
                     },1000)
                     }, 1000)
                  }
                  return;
            }
         },
         // 主屏幕
         handle(type) {
@@ -821,7 +927,7 @@
            this.modeClass = type
         },
         // 配置
         ejected () {
         ejected() {
            this.ejectShow = true
         },
         // 取消配置
@@ -832,58 +938,72 @@
         ejectConfirm() {
            uni.setStorageSync('BaseIp', this.baseIP);
            uni.setStorageSync('BaseLedId', this.baseLedId);
            uni.setStorageSync('BasePort',this.basePort);
            uni.setStorageSync('BaseCrnId',this.baseCrnId);
            uni.setStorageSync('UPROJ',this.baseUrl);
            uni.setStorageSync('BasePort', this.basePort);
            uni.setStorageSync('BaseCrnId', this.baseCrnId);
            uni.setStorageSync('UPROJ', this.baseUrl);
            this.getUrl()
            this.ejectShow = false
         },
         // 日历 服务器
         getDate2() {
            let that = this
            if(that.commonUrl == 'undefined') {
            if (that.commonUrl == 'undefined') {
               return
            }
            uni.request({
               url: that.commonUrl + "/monitor/date",
               method:"GET",
               method: "GET",
               success(result) {
                  // console.log(result);
                  var res = result.data.data
                  that.calendar = res.year + "年" + res.month + "月" + res.day + "日 " + res.hour + ":" + res.minute + ":" + res.second + " " + res.week
                  that.calendar = res.year + "年" + res.month + "月" + res.day + "日 " + res.hour + ":" + res
                     .minute + ":" + res.second + " " + res.week
                  that.currDate = res.year + "/" + res.month + "/" + res.day
               },
               fail(res) {
               }
               fail(res) {}
            })
         },
         // 日历
         getDate() {
            var dt = new Date();
            var year,month,day,hours,minutes,seconds,weeks
            var year, month, day, hours, minutes, seconds, weeks
            year = dt.getFullYear();
            month = (dt.getMonth()+1) < 10 ? '0'+ (dt.getMonth()+1) : (dt.getMonth()+1);
            day = dt.getDate() < 10 ? '0'+dt.getDate() : dt.getDate();
            month = (dt.getMonth() + 1) < 10 ? '0' + (dt.getMonth() + 1) : (dt.getMonth() + 1);
            day = dt.getDate() < 10 ? '0' + dt.getDate() : dt.getDate();
            hours = dt.getHours() < 10 ? '0' + dt.getHours() : dt.getHours();
            minutes = dt.getMinutes() < 10 ? '0' + dt.getMinutes() : dt.getMinutes();
            seconds = dt.getSeconds() < 10 ? '0' + dt.getSeconds() : dt.getSeconds();
            weeks = dt.getDay();
            seconds = dt.getSeconds() < 10 ? '0' + dt.getSeconds() : dt.getSeconds();
            weeks = dt.getDay();
            switch (weeks) {
               case 0: weeks = "星期日"; break;
               case 1: weeks = "星期一"; break;
               case 2: weeks = "星期二"; break;
               case 3: weeks = "星期三"; break;
               case 4: weeks = "星期四"; break;
               case 5: weeks = "星期五"; break;
               default : weeks = "星期六";
               case 0:
                  weeks = "星期日";
                  break;
               case 1:
                  weeks = "星期一";
                  break;
               case 2:
                  weeks = "星期二";
                  break;
               case 3:
                  weeks = "星期三";
                  break;
               case 4:
                  weeks = "星期四";
                  break;
               case 5:
                  weeks = "星期五";
                  break;
               default:
                  weeks = "星期六";
            }
            this.calendar = year + "年" + month + "月" + day + "日 " + hours + ":" + minutes + ":" + seconds + " " + weeks
         },
         getDateFormat(value) {
            var date = new Date(this.currDate);// 获取当前时间
            date.setDate(date.getDate() + value);// 设置天数 -1 天
            console.log(this.currDate);
            var date = new Date(this.currDate); // 获取当前时间
            console.log(date);
            date.setDate(date.getDate() + value); // 设置天数 -1 天
            var m = date.getMonth() + 1
            var d = date.getDate()
            var newDate = m + '-' + d
@@ -892,19 +1012,25 @@
         /*************** 折线图 *****************************************************************************************************/
         initlineChart() {
            let that = this
            if(that.commonUrl == 'undefined') {
            if (that.commonUrl == 'undefined') {
               return
            }
            uni.request({
               url: that.commonUrl + "/monitor/line/charts",
               method:'GET',
               method: 'GET',
               success(result) {
                  var res = result.data
                  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.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),
                     ]
                     console.log(that.chartsData.Line.categories);
                     that.chartsData.Line.series = res.data.rows
                  }
               }
@@ -913,12 +1039,12 @@
         /*************** 饼图 *****************************************************************************************************/
         initPieChart() {
            let that = this
            if(that.commonUrl == 'undefined') {
            if (that.commonUrl == 'undefined') {
               return
            }
            uni.request({
               url: that.commonUrl + "/monitor/loc/rep",
               method:'GET',
               method: 'GET',
               success(result) {
                  var res = result.data
                  if (res.code === 200) {
@@ -934,13 +1060,13 @@
         },
         getOther() {
            let that = this
            if(that.commonUrl == 'undefined') {
            if (that.commonUrl == 'undefined') {
               return
            }
            uni.request({
               url: that.commonUrl + "/monitor/other",
               data: {
                  crnId: that.baseCrnId,
                  crnId: that.baseCrnId,
                  ledId: that.baseLedId,
               },
               success(result) {
@@ -951,40 +1077,51 @@
                     that.baseInfo.xDuration = res.data.xDuration
                     that.baseInfo.yDuration = res.data.yDuration
                  } else if (res.code === 403) {
                  } else {
                  }
               }
            })
         },
      }
   }
</script>
<style>
   /* @import url("../../static/css/common.css"); */
   @import url("home.css");
   /* 版本号 */
   .version {
      min-width: 100rpx;
      position: fixed;
      right: 20rpx;
      bottom: 10rpx;
      font-size: .1rem;
      color: #909399;
   }
   /* 列 */
   .flex-col {
      display: flex;
      flex-direction: column;
   }
   /* 行 */
   .flex-row {
      display: flex;
      flex-direction: row;
   }
   .container{
   .container {
      width: 100vw;
      min-height: 100vh;
      background-color: #00163E;
      color: #fff;
      text-align: center;
   }
   /* 主视图 */
   .home-view {
      width: 100vw;
@@ -992,32 +1129,37 @@
      background-image: url(../../static/background.png);
      background-size: 100vw 100vh;
   }
   .home-right {
      width: 50vw;
      height: 89vh;
      /* background-color: cadetblue; */
   }
   .home-right-box {
      width: 98%;
      height: 98%;
   }
   .head {
      width: 100vw;
      height: 11vh;
      font-size:4vw;
      font-size: 4vw;
      font-weight: 700;
      display: flex;
      align-items: center;
      justify-content: center;
      transform: scale(0.7);
   }
   .time-tools {
      position: absolute;
      right: 2%;
      top: 2%;
      font-size:1vw;
      font-size: 1vw;
      transform: scale(0.8);
   }
   .button-left {
      position: absolute;
      background-image: url(../../static/right.png);
@@ -1028,6 +1170,7 @@
      height: 8.5%;
      transform: scaleX(-1);
   }
   .button-right {
      position: absolute;
      background-image: url(../../static/right.png);
@@ -1037,6 +1180,7 @@
      width: 13.5%;
      height: 8.5%;
   }
   .img-box {
      width: 100%;
      /* background-color: #666666; */
@@ -1046,6 +1190,7 @@
      flex-wrap: wrap;
      font-size: 1vw;
   }
   .item-img {
      width: 50%;
      margin-top: 5%;
@@ -1055,13 +1200,14 @@
      justify-content: flex-start;
      align-items: flex-start;
   }
   .distance {
   }
   .distance {}
   .item-img image {
      height: 5vw;
      width: 5vw;
   }
   .progressBar {
      margin-top: 5%;
      /* width: 100%; */
@@ -1069,44 +1215,51 @@
      background-color: #233751;
      border-radius: 5vw;
   }
   .progress {
      /* width: 90%; */
      height: 100%;
      background-color: #FF5722;
      border-radius: 5vw;
   }
   .charts-box {
     width: 80%;
     height: 24vh;
     margin-left: 10%;
   }
      width: 80%;
      height: 24vh;
      margin-left: 10%;
   }
   .charts-box-ring {
      width: 50%;
      height: 24vh;
      height: 30vh;
      /* background-color: #00ffff; */
   }
   .sub-info {
      font-size: 1.5vw;
   }
   .sub-info image {
      width: 3.5vw;
      height: 3.5vw;
   }
   .red{
   .red {
      color: red
   }
   /* 共用 */
   .main {
      width: 100vw;
      height: 88vh;
      margin-top: 1vh;
      display: flex;
   }
   .mian-item {
      width: 50%;
      height: 100%;
@@ -1115,33 +1268,38 @@
      align-items: center;
      justify-content: center;
   }
   .mian-item-box {
      width: 98%;
      height: 98%;
   }
   .box-item {
      width: 100%;
      margin-top: 4%;
      margin-top: 2%;
      display: flex;
      flex-direction: column;
      align-items: flex-start;
      justify-content: flex-start;
   }
   .item-title {
      font-size:1.5vw;
      font-size: 1.5vw;
      font-weight: 700;
   }
   .item-subTitle {
      font-size:0.5vw;
      font-size: 0.5vw;
      text-indent: 0em;
   }
   .item-text {
      font-size: 1vw;
      text-indent: 2em;
      letter-spacing: 1px;
      line-height: 3vh;
   }
   /* 全板/拣料信息 */
   .info-view {
      width: 100vw;
@@ -1149,6 +1307,7 @@
      background-image: url(../../static/background.png);
      background-size: 100vw 100vh;
   }
   .info-main {
      width: 100vw;
      height: 88vh;
@@ -1156,10 +1315,12 @@
      justify-content: center;
      align-items: center;
   }
   .info-box {
      width: 98%;
      height: 98%;
   }
   /* 异常信息 */
   .error-info-view {
      width: 100vw;
@@ -1167,7 +1328,7 @@
      background-image: url(../../static/background.png);
      background-size: 100vw 100vh;
   }
   /* 弹出:配置区域 */
   .eject-mask {
      width: 100%;
@@ -1179,30 +1340,37 @@
      z-index: 999;
      display: flex;
      align-items: center;
      justify-content: center;
      justify-content: center;
   }
   .eject{
   .eject {
      position: relative;
      width: 40vw;
      height: 40vh;
      background-color: #fff;
      border-radius: 2rem;
   }
   .eject-title {
      width: 100%;
      height: 5vh;
      line-height: 6vh;
      font-size: 3vh;
      font-weight: 700;
      color:    #606266;
      color: #606266;
      text-align: center;
   }
   .eject-input {
      margin-top: 2vh;
      height: 25vh;
      /* background-color: #00163E; */
      ::-webkit-scrollbar{display:none}
      ::-webkit-scrollbar {
         display: none
      }
   }
   .item {
      display: flex;
      align-items: center;
@@ -1210,13 +1378,15 @@
      font-size: 1.5vw;
      color: #363636;
   }
   .desc {
      display: inline-block;
      width: 40%;
      text-align: right;
      color: #606266;
   }
   .input {
      display: flex;
      align-items: center;
@@ -1228,13 +1398,15 @@
      margin-right: 20%;
      text-align: start;
   }
   .eject-input input {
      width: 100%;
      height: 3vh;
      font-size: 1vw;
   }
   .eject-button {
      display: flex;
      align-items: center;
@@ -1245,6 +1417,7 @@
      width: 100%;
      border-top: 1px solid #ccc;
   }
   .button-item {
      width: 50%;
      height: 100%;
@@ -1253,24 +1426,33 @@
      text-align: center;
      color: #909399;
   }
   .button-item:last-child {
      color: #67C23A;
      border-left: 1px solid #ccc;
   }
   .info-box-text {
      width: 100%;height: 100%;
      display: flex;flex-direction: column;align-items: center;justify-content: center;
      width: 100%;
      height: 100%;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
   }
   .info-box-text-item {
      height: 20%;font-size: 8vh;
      height: 20%;
      font-size: 8vh;
      justify-content: center;
      white-space: pre-line;
   }
   .textred{
   .textred {
      color: red;
   }
   .board {
      position: absolute;
      top: 0;
@@ -1280,11 +1462,13 @@
      width: 100%;
      /* box-shadow: rgba(0,0,0,.35) 0px 5px 15px; */
   }
   .error-board {
      margin: .2rem;
      height: 11vh;
      padding: .2rem;
      /* height: 11vh; */
      background-color: #F56C6C;
      box-shadow: rgba(0,0,0,.35) 0px 5px 15px;
      box-shadow: rgba(0, 0, 0, .35) 0px 5px 15px;
      border-radius: .2rem;
      display: flex;
      align-items: center;