#
whycq
2024-10-14 f63be6a1bd357877eef3bacf0cc003865c834f75
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,52 +15,86 @@
                  <view class="mian-item-box">
                     <y-box>
                        <view class="box-item">
                           <text class="item-title">穿梭车运行数据</text>
                           <text class="item-subTitle">Shuttle operation data</text>
                           <view style="width: 100%;height: 28vh;">
                              <qiun-data-charts type="column" :chartData="chartsDataLine2" :opts="opts1" />
                           </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">Hoist operating 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="column" :chartData="chartsDataPie3" :opts="opts" />
                              <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">
                           <view class="flex-row" style="width: 100%;">
                              <!-- 左侧 -->
                              <view class="flex-col"
                                 style="align-items: flex-start;justify-content: flex-start;">
                              <view class="flex-col" style="align-items: flex-start;justify-content: flex-start;">
                                 <text class="item-title">库位使用率</text>
                                 <text class="item-subTitle">EQUIPMENT USAGE THIS MONTH</text>
                              </view>
                              <!-- 右侧 -->
                              <view style="margin-left: auto;">
                                 <!-- 百分比 -->
                                 <view class="flex-col"
                                    style="align-items: flex-end;justify-content: flex-end;">
                                 <view class="flex-col" style="align-items: flex-end;justify-content: flex-end;" >
                                    <!-- style="justify-content: flex-end;position: absolute;top: 0;right: 1vw;text-align: right;" -->
                                    <text class="item-title">{{baseInfo.usedPr}}%</text>
                                    <text class="item-subTitle">同比上月 + 5%</text>
                                 </view>
                              </view>
                           </view>
                           <view class="flex-col"
                              style="width: 100%;align-items: flex-start;position: relative;font-size: 1vw">
                           <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>
                                 <view
                                    style="position: absolute;bottom: 0;right: 0;font-size: 2.5vw;color: #FF5722;;">
                                    {{baseInfo.used}}
                                 </view>
                                 <view style="position: absolute;bottom: 0;right: 0;font-size: 2.5vw;color: #FF5722;;">{{baseInfo.used}}</view>
                              </view>
                           </view>
                        </view>
@@ -76,16 +110,14 @@
                              <view class="box-item">
                                 <view class="flex-row" style="width: 100%;">
                                    <!-- 左侧 -->
                                    <view class="flex-col"
                                       style="align-items: flex-start;justify-content: flex-start;">
                                    <view class="flex-col" style="align-items: flex-start;justify-content: flex-start;">
                                       <text class="item-title">入出库统计</text>
                                       <text class="item-subTitle">ORDER STATISTICS</text>
                                    </view>
                                    <!-- 右侧 -->
                                    <view style="margin-left: auto;">
                                       <!-- 百分比 -->
                                       <view class="flex-col"
                                          style="align-items: flex-end;justify-content: flex-end;">
                                       <view class="flex-col" style="align-items: flex-end;justify-content: flex-end;" >
                                          <!-- style="justify-content: flex-end;position: absolute;top: 0;right: 1vw;text-align: right;" -->
                                          <text class="item-title">31</text>
                                          <text class="item-subTitle">今日订单数</text>
@@ -93,34 +125,31 @@
                                    </view>
                                 </view>
                                 <view class="charts-box">
                                    <qiun-data-charts type="line" :chartData="chartsDataLine1"
                                       :opts="opts3" />
                                    <qiun-data-charts type="line" :chartData="chartsDataLine1" :echartsH5="true" :echartsApp="true"/>
                                 </view>
                              </view>
                           </y-box>
                        </view>
                        <!-- null -->
                        <view style="height: 2%;"></view>
                        <view style="height: 43%;">
                           <y-box>
                              <view class="box-item">
                                 <view class="flex-row" style="width: 100%;">
                                    <!-- 左侧 -->
                                    <view class="flex-col"
                                       style="align-items: flex-start;justify-content: flex-start;">
                                    <view class="flex-col" style="align-items: flex-start;justify-content: flex-start;">
                                       <text class="item-title">库存类型</text>
                                       <text class="item-subTitle">INCOME DATE</text>
                                    </view>
                                    <!-- 右侧 -->
                                    <view style="margin-left: auto;">
                                       <!-- 百分比 -->
                                       <view class="flex-col"
                                          style="align-items: flex-end;justify-content: flex-end;">
                                          <text class="item-title">今天</text>
                                       <view class="flex-col" style="align-items: flex-end;justify-content: flex-end;" >
                                          <text class="item-title">今天</text>
                                          <text class="item-subTitle">Today</text>
                                       </view>
                                    </view>
@@ -128,47 +157,36 @@
                                 <view class="flex-row" style="width: 100%;">
                                    <!-- 左 -->
                                    <view class="charts-box-ring">
                                       <qiun-data-charts type="pie" :opts="opts4"
                                          :chartData="chartsDataPie2" />
                                       <qiun-data-charts type="ring" :opts="{legend:{position:'bottom'}}" :eopts="ringOpts" :chartData="chartsDataPie2" :echartsH5="true" :echartsApp="true"/>
                                    </view>
                                    <!-- 右 -->
                                    <view>
                                       <view class="flex-row sub-info">
                                          <image src="../../static/g1.png" mode="aspectFit"></image>
                                          <view style="width: 8vw;height: 4vw;line-height: 4vw;">在库</view>
                                          <view
                                             style="width: 8vw;height: 4vw;line-height: 4vw;font-size: 2vw;">
                                             {{baseInfo.stockCount}}
                                          </view>
                                          <view style="width: 8vw;height: 4vw;line-height: 4vw;font-size: 2vw;">{{baseInfo.stockCount}}</view>
                                       </view>
                                       <view class="flex-row sub-info" style="margin-top: 2vh;">
                                          <image src="../../static/f1.png" mode="aspectFit"></image>
                                          <view style="width: 8vw;height: 4vw;line-height: 4vw;">空库</view>
                                          <view
                                             style="width: 8vw;height: 4vw;line-height: 4vw;font-size: 2vw;">
                                             {{baseInfo.emptyCount}}
                                          </view>
                                          <view style="width: 8vw;height: 4vw;line-height: 4vw;font-size: 2vw;">{{baseInfo.emptyCount}}</view>
                                       </view>
                                       <view class="flex-row sub-info" style="margin-top: 2vh;">
                                          <image src="../../static/e1.png" mode="aspectFit"></image>
                                          <view style="width: 8vw;height: 4vw;line-height: 4vw;">锁定</view>
                                          <view
                                             style="width: 8vw;height: 4vw;line-height: 4vw;font-size: 2vw;">
                                             {{baseInfo.noneCount}}
                                          </view>
                                          <view style="width: 8vw;height: 4vw;line-height: 4vw;font-size: 2vw;">{{baseInfo.noneCount}}</view>
                                       </view>
                                    </view>
                                 </view>
                              </view>
                           </y-box>
                        </view>
                        <view style="height: 2%;"></view>
                        <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 class="flex-col" style="width: 100%;height: 100%;font-size: 4vh;justify-content: center;letter-spacing: 1vh;">
                                 中扬智能大屏显示系统
                              </view>
                           </y-box>
                        </view>
@@ -176,7 +194,7 @@
                  </view>
               </view>
            </view>
         </view>
      </uni-transition>
      <!-- 全板/拣料信息 -->
@@ -191,8 +209,8 @@
            <view class="button-right" @click="ejected()"></view>
            <!-- 主体 -->
            <view class="info-main">
               <view class="info-box" style="display: flex;">
                  <y-box v-for="item in infoText">
               <view class="info-box" style="display: flex;overflow: hidden;">
                  <y-box v-for="info in infoText">
                     <!-- 文本容器 -->
                     <view class="text-content">
                        <!-- head -->
@@ -200,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>
@@ -215,17 +231,15 @@
                           circular 是否采用衔接滑动,即播放到末尾后重新回到开头
                           vertical 滑动方向是否为纵向 
                           display-multiple-items 同时显示的滑块数量 -->
                           <swiper class="swiper-body-main" vertical="true" display-multiple-items="15"
                           <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 swiperList" :key="i"
                              <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.orderNo ? item.orderNo : '--'}}
                                    {{item.matnr ? item.matnr : '--'}}
                                 </view>
                                 <view style="flex: 2;">{{item.matNo}}</view>
                                 <view style="flex: 2;">{{item.containerCode}}</view>
                                 <view style="flex: 2;">{{item.name}}</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>
@@ -500,9 +514,9 @@
      },
      onShow() {
         // 隐藏时间,电量,信号等
         // #ifdef APP-PLUS
         plus.navigator.setFullscreen(true)
         // #endif
         // // #ifdef APP-PLUS
         // plus.navigator.setFullscreen(true)
         // // #endif
      },
      mounted() {
         let that = this
@@ -518,7 +532,7 @@
         that.baseCrnId = BaseCrnId
         this.getVersion()
         // this.getVersion()
         this.getDate2()
         setTimeout(() => {
            this.getShuttle()
@@ -553,18 +567,17 @@
         //    this.changeErrorShow()
         // },5000)
         setInterval(() => {
            this.getShuttle()
            this.getServerData()
            this.initlineChart()
            this.initPieChart()
            this.getOther()
         }, 600000)
         
         // #ifdef APP-PLUS
            setTimeout(()=>{
               plus.runtime.restart()
            },28800000)
         // #endif
         // // #ifdef APP-PLUS
         //    setTimeout(()=>{
         //       plus.runtime.restart()
         //    },28800000)
         // // #endif
         
         
      },
@@ -723,25 +736,12 @@
               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
                  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
                  }
               }
            })
@@ -749,25 +749,14 @@
         },
         infoModel(res) {
            let that = this
            if (res.data && res.data !== "") {
               if (that.infoType == 2 || that.infoType == 3) {
                  return;
               }
               // infoType1:只有拣料等信息
               that.infoType = 1
               that.infoText.title = '站点出库'
               that.infoText = res.data
               for (let info of res.data) {
                  console.log(info);
                  res.data[0].matDtos
                  for (let k in res.data[0].matDtos) {
                  }
                  that.infoText.staNo = res.data[0].staNo
                  that.infoText.barcode = res.data[0].barcode
                  that.swiperList = res.data[0].matDtos
               }
               that.infoText.title = '站点出库'
               
            } else {
               if (that.infoType == 2 || that.infoType == 3) {