#
whycq
2024-03-02 5bb7cf9fe664549b382da52e15069ff2bd980151
Monitor-APP/pages/home/home.vue
@@ -1,210 +1,11 @@
<template>
    <view class="container">
        <!-- 宁波捷丰项目 -->
        <uni-transition :duration="duration" :mode-class="homeMode" :show="homeViewShow">
            <view class="home-view">
                <view class="head">
                    <text>自动仓库WCS监控平台</text>
                </view>
                <!-- 日历 -->
                <view class="time-tools">{{calendar}}</view>
                <view class="button-left" @click="ejected()"></view>
                <view class="button-right" @click="ejected()"></view>
                <!-- 主视图 -->
                <view class="main">
                    <view class="mian-item">
                        <view class="mian-item-box">
                            <y-box>
                                <view class="box-item">
                                    <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">warehouse data</text>
                                    <view class="img-box">
                                        <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;">m</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;">m</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;">s</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;">s</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;">
                                            <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;" >
                                                <!-- 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-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>
                                    </view>
                                </view>
                            </y-box>
                        </view>
                    </view>
                    <view class="mian-item">
                        <view class="mian-item-box">
                            <view style="width: 100%;height: 100%;">
                                <view style="height: 35%;">
                                    <!-- 折线图 -->
                                    <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;">
                                                    <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;" >
                                                        <!-- 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>
                                                    </view>
                                                </view>
                                            </view>
                                            <view class="charts-box">
                                                <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;">
                                                    <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>
                                                        <text class="item-subTitle">Today</text>
                                                    </view>
                                                </view>
                                            </view>
                                            <view class="flex-row" style="width: 100%;">
                                                <!-- 左 -->
                                                <view class="charts-box-ring">
                                                    <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>
                                                    <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>
                                                    <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>
                                                </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监控平台
                                            <!-- <image src="../../static/ruiyun.jpg" mode="" style="width: 100%;"></image> -->
                                        </view>
                                    </y-box>
                                </view>
                            </view>
                        </view>
                    </view>
                </view>
            </view>
        </uni-transition>
        <!-- 全板/拣料信息 -->
        <uni-transition :duration="duration" :mode-class="infoMode" :show="infoViewShow">
            <view class="home-view">
                <view class="head">
                    <text>{{infoText.title}}</text>
               <image src="../../static/head.png" mode="" class="head-image"></image>
                    <text style="z-index: 999;">入库屏</text>
                </view>
                <!-- 日历 -->
                <view class="time-tools">{{calendar}}</view>
@@ -218,11 +19,13 @@
                            <view class="text-content">
                                <!-- 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 style="width: 10%;">序号</view>
                                    <view style="width: 25%;">品番</view>
                                    <view style="width: 15%;">待补货数量</view>
                             <view style="width: 15%;">已补货数量</view>
                             <view style="width: 15%;">补货状态</view>
                           <view style="width: 10%;">工单创建时间</view>
                           <view style="width: 10%;">预计完成时间</view>
                                </view>
                                <!-- body -->
                                <view class="swiper-body">
@@ -233,12 +36,21 @@
                                    <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>
                                            <view style="width: 10%;">{{item.count}}</view>
                                        <swiper-item :class="item.inspectSts" class="swiper-item"  v-for="(item,i) in swiperList" :key="i">
                                            <view style="width: 10%;">{{i+1}}</view>
                                            <view style="width: 25%;">{{item.maktx}}</view>
                                            <view style="width: 15%;">{{item.storeReplenishment}}</view>
                                            <view style="width: 15%;color: chartreuse;">{{item.storeAdd}}</view>
                                            <view style="width: 15%;">
                                    <text class="beBatch1" v-if="item.beBatch == 2">
                                       {{item.beBatch$}}
                                    </text>
                                    <text class="beBatch2" v-if="item.beBatch != 2">
                                       {{item.beBatch$}}
                                    </text>
                                 </view>
                                 <view style="width: 10%;">{{item.appeTime$}}</view>
                                 <view style="width: 10%;">{{item.overTime$ ? item.overTime$ : '--'}}</view>
                                        </swiper-item>
                                    </swiper>
                                </view>
@@ -326,8 +138,8 @@
        data() {
            return {
                series: [],
                homeViewShow: true,
                infoViewShow: false    ,
                homeViewShow: false,
                infoViewShow: true    ,
                errorInfoViewShow: false,
                homeMode: [],
                infoMode: [],
@@ -381,7 +193,17 @@
                    count: "",
                    error: ""
                },
                swiperList: []
                swiperList: [
               {
                  maktx: 1,
                  storeReplenishment: '123123',
                  storeAdd: '123123',
                  beBatch$: '123',
                  appeTime$: '2024年3月1日 21点14分',
                  overTime$: '2024年3月1日 21点14分'
               }
            ],
            inspect: 'inspectRed'
            }
        },
        onShow() {
@@ -403,47 +225,30 @@
            that.basePort = BasePort
            that.baseCrnId = BaseCrnId
            this.getUrl()
         setTimeout(()=>{
            this.getServerData()
            this.initlineChart()
            this.initPieChart()
            this.getOther()
            setTimeout(()=>{
               this.getServerData()
               this.initlineChart()
               this.initPieChart()
               this.getOther()
               setTimeout(()=>{
                  this.getServerData()
                  this.initlineChart()
                  this.initPieChart()
                  this.getOther()
               },500)
            },500)
         },500)
        },
        onLoad() {
         setInterval(()=>{
            this.getServerData()
            this.getDate2()
            this.getUrl()
            this.getInfo()
            this.getError()
            // this.getServerData()
            // this.getDate2()
            // this.getUrl()
            // this.getInfo()
            // this.getError()
            // this.getInfo2()
            // this.getError2()
            this.controller()
            // this.getInfo3()
            // this.controller()
         },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)
        },
        methods: {
         // 日历 服务器
@@ -502,6 +307,25 @@
                    that.infoType = 0
                }
            },
         getInfo3() {
            let that = this
            uni.request({
                url: that.commonUrl + "/open/loc/query/auth/v1",
                method:"GET",
                data: {ledId:that.baseLedId},
                success(result) {
                    var res = result.data
                  for (let k of res.data) {
                     if (k.inspect == 1) {
                        k['inspectSts'] = 'inspectWhite'
                     } else {
                        k['inspectSts'] = 'inspectRed'
                     }
                  }
                   that.swiperList = res.data
                }
            })
         },
            getError2 () {
                let that = this
                let result = ycqdata.dataError2
@@ -826,8 +650,9 @@
    .home-view {
        width: 100vw;
        min-height: 100vh;
        background-image: url(../../static/background.png);
        background-size: 100vw 100vh;
       /* background-image: url(../../static/head.png);
        background-size: 50vw 10vh;
      background-repeat: no-repeat; */
    }
    .home-right {
        width: 50vw;
@@ -848,6 +673,11 @@
        justify-content: center;
        transform: scale(0.7);
    }
   .head-image {
      width: 80%;
      position: absolute;
      z-index: 1;
   }
    .time-tools {
        position: absolute;
        right: 2%;
@@ -857,7 +687,7 @@
    }
    .button-left {
        position: absolute;
        background-image: url(../../static/right.png);
        background-image: url(../../static/headleft.png);
        background-size: 100% 100%;
        top: 1.8%;
        left: 21.3%;
@@ -1097,4 +927,26 @@
        height: 20%;font-size: 8vh;
        justify-content: center;
    }
   .beBatch1 {
      padding: 18rpx;
      background-color: #fec652;
      height: 60rpx;
      text-align: center;
      line-height: 60rpx;
      border-radius: 10rpx;
   }
   .beBatch2 {
      padding: 18rpx;
      background-color: #60b86b;
      height: 60rpx;
      text-align: center;
      line-height: 60rpx;
      border-radius: 10rpx;
   }
   .inspectRed {
      background-color: rgba(235, 104, 84, .6);
   }
   .inspectWhite {
      background-color: rgba(255, 255, 255, .4);
   }
</style>