pang.jiabao
2025-09-22 ab3fe873abd359007fa16b284a5a465c23da8b68
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>德利众自动仓库WCS监控平台</text>
            </view>
            <!-- 日历 -->
            <view class="time-tools">{{calendar}}</view>
@@ -218,13 +218,11 @@
                           </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>
                           </y-box>
                        <view style="height: 18%"  class="flex-row">
                              <image style="height: 100%;"
                                 src="" mode="aspectFit"></image>
                              <image style="height: 100%;"
                                 src="../../static/zy_logo.png" mode="aspectFit"></image>
                        </view>
                     </view>
                  </view>
@@ -246,25 +244,54 @@
            <!-- 主体 -->
            <view class="info-main">
               <view class="info-box">
                  <view class="swiper-head" style="height: 10%;width: 96%;margin-left: 2%;font-size: 2.5vb;">
                     <view style="width: 15%;">订单号</view>
                     <view style="width: 10%;">单行ID</view>
                     <view style="width: 15%;">商品编号</view>
                     <view style="width: 15%;">商品名称</view>
                     <view style="width: 10%;">托盘码</view>
                     <view style="width: 15%;">特殊说明</view>
                     <view style="width: 10%;">作业数量</view>
                     <view style="width: 10%;">剩余数量</view>
                  </view>
                  <y-box>
                     <!-- 文本容器 -->
                     <view class="text-content" v-for="item in swiperList">
                        <view>目标站:{{infoText.staNo}}</view>
                     <!-- <view class="text-content" v-for="item in swiperList" style="font-size: 3vw;"> -->
<!--                         <view>目标站:{{infoText.staNo}}</view>
                        <view>商品编码:{{item.matnr}}</view>
                        <view>商品名称:{{item.maknx}}</view>
                        <view>规格:{{item.specs}}</view>
                        <view>图号:{{item.model ? item.model :''}}</view>
                        <view>数量:{{item.count}} / {{item.total ? item.total : '--'}}</view>
                        <view>数量:{{item.count}} / {{item.total ? item.total : '--'}}</view> -->
         <!--             <view style="display: flex;text-align: left;">
                        <view style="width: 50%;">订单号:{{item.orderNo}}</view>
                        <view style="width: 50%;">单行ID:{{item.memo}}</view>
                     </view>
                     <view style="display: flex;text-align: left;">
                           <view style="width: 50%;">商品编号:{{item.matnr}}</view>
                           <view style="width: 50%;">商品名称:{{item.maknx}}</view>
                     </view>
                     <view style="display: flex;text-align: left;">
                           <view style="width: 50%;">托盘码:{{infoText.barcode}}</view>
                           <view style="width: 50%;">特殊说明:{{item.batch}}</view>
                     </view>
                     <view style="display: flex;text-align: left;">
                           <view style="width: 50%;">作业数量:{{item.count}}</view>
                           <view style="width: 50%;">剩余数量:{{item.total}}</view>
                     </view> -->
                        <!-- head -->
                        <!-- <view class="swiper-head">
                           <view style="width: 20%;">目标站:{{infoText.staNo}}</view>
                           <view style="width: 30%;">商品编号</view>
                           <view style="width: 20%;">商品名称</view>
                           <view style="width: 20%;">规格</view>
                           <view style="width: 10%;">数量</view>
<!--                         <view class="swiper-head" style="height: 15%;">
                           <view style="width: 15%;">订单号</view>
                           <view style="width: 10%;">单行ID</view>
                           <view style="width: 15%;">商品编号</view>
                           <view style="width: 15%;">商品名称</view>
                           <view style="width: 10%;">托盘码</view>
                           <view style="width: 15%;">特殊说明</view>
                           <view style="width: 10%;">作业数量</view>
                           <view style="width: 10%;">剩余数量</view>
                        </view> -->
                        <!-- body -->
                        <!-- <view class="swiper-body"> -->
@@ -272,19 +299,23 @@
                           circular 是否采用衔接滑动,即播放到末尾后重新回到开头
                           vertical 滑动方向是否为纵向 
                           display-multiple-items 同时显示的滑块数量 -->
                        <!-- <swiper class="swiper-body-main" vertical="true"
                           display-multiple-items="8"
                           circular="true" :autoplay="true" :interval="3000" :duration="1000">
                              <swiper-item class="swiper-item" v-for="(item,i) in swiperList" :key="i">
                                 <view style="width: 20%;">No:{{i+1}}</view>
                                 <view style="width: 30%;">{{item.matNo}}</view>
                                 <view style="width: 20%;">{{item.maknx}}</view>
                                 <view style="width: 20%;">{{item.specs}}</view>
                        <swiper class="swiper-body-main" vertical="true"
                           display-multiple-items="3"
                           circular="true" :autoplay="true" :interval="3000" :duration="1000" style="font-size: 2vb;">
                              <swiper-item  class="swiper-item" v-for="(item,i) in swiperList" :key="i">
                                 <!-- <view>No:{{i+1}}</view> -->
                                 <view style="width: 15%;">{{item.orderNo}}</view>
                                 <view style="width: 10%;"> {{item.memo}}</view>
                                 <view style="width: 15%;">{{item.matnr}}</view>
                                 <view style="width: 15%;">{{item.maknx}}</view>
                                 <view style="width: 10%;">{{infoText.barcode}}</view>
                                 <view style="width: 15%;">{{item.batch}}</view>
                                 <view style="width: 10%;">{{item.count}}</view>
                                 <view style="width: 10%;">{{item.total}}</view>
                              </swiper-item>
                           </swiper>
                        </view> -->
                     </view>
                        <!-- </view> -->
                     <!-- </view> -->
                  </y-box>
               </view>
            </view>
@@ -374,7 +405,9 @@
            homeViewShow: true,
            infoViewShow: false,
            errorInfoViewShow: false,
            errorBoardShow: false,
            homeMode: [],
            carInfo: [],
            infoMode: [],
            errorInfoMode: [],
            baseInfo: {
@@ -413,6 +446,10 @@
            baseLedId: '',
            baseCrnId: '',
            baseUrl: '',
            apiIp: '10.10.0.189',
            apiPort: '8080',
            apiUrl: 'dlzwcs',
            ledInfosApi: '/console/getLedInfos',
            info: null,
            error: null,
            infoType: 0,
@@ -483,6 +520,8 @@
         }, 500)
      },
      onLoad() {
         this.getLedInfo()
         setInterval(() => {
            this.getDate2()
            this.getUrl()
@@ -501,6 +540,24 @@
         }, 1800000)
      },
      methods: {
         carInfoModel(res) {
            let infoList = []
            if (res.code == 200 && res.data != '') {
               let str = ''
               for (let k of res.data) {
                  str = `${k.deviceNo}号${k.device}-${k.errorMsg}`
                  infoList.push(str)
               }
               this.carInfo = infoList
               this.errorBoardShow = true
            } else {
               this.errorBoardShow = false
            }
         },
         changeErrorShow() {
            this.errorBoardShow = !this.errorBoardShow
         },
         timeOuts() {
            console.log(this.times);
         },
@@ -510,6 +567,25 @@
         getServerData() {
            this.chartsDataLine1 = JSON.parse(JSON.stringify(this.chartsData.Line))
            this.chartsDataPie2 = JSON.parse(JSON.stringify(this.chartsData.Pie))
         },
         getLedInfo() {
            let that = this
            uni.request({
               url: this.baseHttp +  that.apiIp + ":" + that.apiPort + "/" + that.apiUrl + "/" + that.ledInfosApi,
               method: "GET",
               data: {},
               success(result) {
                  var res = result.data
                  let data = res.data;
                  uni.setStorageSync('BaseIp', that.apiIp);
                  uni.setStorageSync('BaseLedId', data.staArr);
                  uni.setStorageSync('BasePort', that.apiPort);
                  uni.setStorageSync('BaseCrnId', data.crnId);
                  uni.setStorageSync('UPROJ', that.apiUrl);
                  this.getUrl()
               }
            })
         },
         // 获取错误信息
         getInfo2() {
@@ -603,21 +679,22 @@
                  that.infoText.title = '拣料出库'
               } else if (res.data[0].ioType === 107) {
                  that.infoText.title = '盘点出库'
               }else if (res.data[0].ioType === 1) {
               } else if (res.data[0].ioType === 1) {
                  that.infoText.title = '全板入库'
               }else if (res.data[0].ioType === 10) {
               } else if (res.data[0].ioType === 10) {
                  that.infoText.title = '空板入库'
               }else if (res.data[0].ioType === 54) {
               } else if (res.data[0].ioType === 54) {
                  that.infoText.title = '并板入库'
               }else if (res.data[0].ioType === 110) {
               } else if (res.data[0].ioType === 110) {
                  that.infoText.title = '空板出库'
               }else if (res.data[0].ioType === 53) {
               } else if (res.data[0].ioType === 53) {
                  that.infoText.title = '拣料再入库'
               }else if (res.data[0].ioType === 57) {
               } else if (res.data[0].ioType === 57) {
                  that.infoText.title = '盘点再入库'
               }
               that.infoText.staNo = res.data[0].staNo
               that.infoText.barcode = res.data[0].barcode
               that.swiperList = res.data[0].matDtos
               // that.infoText.matnr = res.data[0].matDtos[0].matnr
               // that.infoText.specs = res.data[0].matDtos[0].specs
@@ -763,6 +840,7 @@
                  var res = result.data.data
                  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) {
@@ -940,7 +1018,7 @@
   .head {
      width: 100vw;
      height: 11vh;
      font-size: 4vw;
      font-size: 3vw;
      font-weight: 700;
      display: flex;
      align-items: center;
@@ -1114,7 +1192,7 @@
   .info-box {
      width: 98%;
      height: 98%;
      height: 90%;
   }
   /* 异常信息 */
@@ -1248,4 +1326,26 @@
   .textred {
      color: red;
   }
   .board {
      position: absolute;
      top: 0;
      right: 0;
      /* background-color: #aa00ff; */
      /* height: 13vh; */
      width: 100%;
      /* box-shadow: rgba(0,0,0,.35) 0px 5px 15px; */
   }
   .error-board {
      margin: .2rem;
      height: 11vh;
      background-color: #F56C6C;
      box-shadow: rgba(0, 0, 0, .35) 0px 5px 15px;
      border-radius: .2rem;
      display: flex;
      align-items: center;
      justify-content: space-around;
      font-size: 2rem;
   }
</style>