#
whycq
2023-11-08 5b25588d44fa579f2aa2b24a457c44325ada0c9b
#
1个文件已修改
473 ■■■■ 已修改文件
Monitor-APP/pages/home/home.vue 473 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Monitor-APP/pages/home/home.vue
@@ -9,8 +9,80 @@
                <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="main-b" v-for="item in locs" :class="item.color">
                        <view class="flex-col" style="width: 100%;">
                            <view class="flex-row">
                                <view style="flex: 1;">{{item.devNo}}</view>
                                <view style="flex: 1;">{{item.locSts$}}</view>
                                <!-- <view style="flex: 1;" v-if="item.agvWrkMast">{{item.agvWrkMast.wrkNo}}</view> -->
                                <view style="flex: 1;"></view>
                            </view>
                            <view class="flex-row">
                                <view style="flex: 1;" v-if="item.agvWrkMast">工作号:{{item.agvWrkMast.wrkNo}}</view>
                                <view style="flex: 1;" v-if="item.agvWrkMast" >{{item.agvWrkMast.wrkSts$}}</view>
                                <view style="flex: 1;" v-if="item.agvWrkMast">{{item.agvWrkMast.ioType$}}</view>
                                <view style="flex: 1;" v-if="!item.agvWrkMast"></view>
                            </view>
                            <view class="flex-row">
                                <view style="flex: 1;" v-if="item.agvWaitPakin">料箱码: {{item.agvWaitPakin.suppCode}}</view>
                                <view style="flex: 1;" v-if="item.agvWrkDetl">料箱码:{{item.agvWrkDetl.suppCode}}</view>
                                <view style="flex: 1;" ></view>
                                <view style="flex: 1;" ></view>
                            </view>
                        </view>
                        <view class="flex-col" style="width: 100%;"  v-if="item.agvWaitPakin">
                            <view class="flex-row" style="background-color: #007aff;">
                                <view style="flex: 2;">订单号</view>
                                <view style="flex: 2;">物料号</view>
                                <view style="flex: 1;">批号</view>
                                <view style="flex: 1;">数量</view>
                                <view style="flex: 1;">总数量</view>
                            </view>
                            <view class="flex-row" v-for="k in item.agvWaitPakin.orderNo">
                                <view style="flex: 2;">{{k.orderNo}}</view>
                                <view style="flex: 2;">{{item.agvWaitPakin.matnr}}</view>
                                <view style="flex: 1;">{{item.agvWaitPakin.batch ? item.agvWaitPakin.batch : '--'}}</view>
                                <view style="flex: 1;">{{k.anfme}}</view>
                                <view style="flex: 1;">{{item.agvWaitPakin.anfme + item.agvWaitPakin.volume}}</view>
                            </view>
                        </view>
                        <view class="flex-col" style="width: 100%;"  v-if="item.agvWrkDetl">
                            <view class="flex-row" style="background-color: #007aff;">
                                <view style="flex: 2;">订单号</view>
                                <view style="flex: 2;">物料号</view>
                                <view style="flex: 1;">批号</view>
                                <view style="flex: 1;">数量</view>
                                <view style="flex: 1;">库存数量</view>
                            </view>
                            <view class="flex-row" v-for="k in item.agvWrkDetl.orderNo">
                                <view style="flex: 2;">{{k.orderNo}}</view>
                                <view style="flex: 2;">{{item.agvWrkDetl.matnr}}</view>
                                <view style="flex: 1;">{{item.agvWrkDetl.batch ? item.agvWrkDetl.batch : '--'}}</view>
                                <view style="flex: 1;">{{k.anfme}}</view>
                                <view style="flex: 1;">{{item.agvWrkDetl.anfme + item.agvWrkDetl.volume}}</view>
                            </view>
                        </view>
                        <view style="position: absolute;bottom: 0;left: 0;width: 100%;display: flex;justify-content: center;" v-if="item.agvWrkMast && item.agvWrkMast.ioType == 103 && item.agvWrkDetl">
                            <!-- <button type="primary" size="mini">拣料回库</button> -->
                            <view style="width: 60%;background-color: #007aff;height: 3vh;display: flex;align-items: center;justify-content: center;font-size: 30rpx;
                                border-radius: 8rpx;" @click="pickIn(item.devNo)">拣料回库</view>
                        </view>
                        <view style="position: absolute;bottom: 0;left: 0;width: 100%;display: flex;justify-content: center;" v-if="item.agvWrkMast && item.agvWrkMast.ioType == 101 && item.agvWrkDetl">
                            <!-- <button type="primary" size="mini">容器离场</button> -->
                            <view style="width: 60%;background-color: #007aff;height: 3vh;display: flex;align-items: center;justify-content: center;font-size: 30rpx;
                                border-radius: 8rpx;" @click="containerMoveOut(item.devNo)">容器离场</view>
                        </view>
                    </view>
                </view>
                <!-- 主视图 -->
                <!-- <view class="main">
                    <view class="main-y" v-for="item in locs">
                        <view class="y-it"><view class="y-it-desc">工作站编号:</view><view class="margin">{{item.devNo}}</view></view>
                        <view class="y-it"><view class="y-it-desc">工作站编号:</view><view class="margin">{{item.locSts$}}</view></view>
@@ -24,17 +96,12 @@
                        <view class="y-it" v-if="item.agvWrkMast"><view class="y-it-desc">工作号:</view><view class="margin">{{item.agvWrkMast.wrkNo}}</view></view>
                        <view class="y-it" v-if="item.agvWrkMast"><view class="y-it-desc">工作状态:</view><view class="margin">{{item.agvWrkMast.wrkSts$}}</view></view>
                        <view class="y-it" v-if="item.agvWrkMast"><view class="y-it-desc">工作类型:</view><view class="margin">{{item.agvWrkMast.ioType$}}</view></view>
                        <!-- v-for="k in item.agvWrkDetl.orderNo" -->
                        <view class="y-it" v-if="item.agvWrkDetl "  >
                            <view style="display: flex;align-items: stretch;" >
                                <view style="height: 100%">订单号: </view>
                                <view style="width: 16vw;display: flex;flex-wrap: wrap;">
                                    <view style="width: 100%; text-align: left;" v-for="k in item.agvWrkDetl.orderNo">{{k.orderNo}}--{{k.anfme}}</view>
                                </view>
                                <!-- <view style="width: 16vw;background-color: aquamarine;display: flex;" v-for="k in item.agvWrkDetl.orderNo">
                                    <view>{{k.orderNo}}--</view>
                                    <view>{{k.anfme}}</view>
                                </view> -->
                            </view>
                        </view>
                        <view class="y-it" v-if="item.agvWrkDetl"><view class="y-it-desc">物料号:</view><view class="margin">{{item.agvWrkDetl.matnr}}</view></view>
@@ -46,7 +113,7 @@
                        </view>
                        
                    </view>
                </view>
                </view> -->
                
            </view>
        </uni-transition>
@@ -198,7 +265,9 @@
                timeOut: false,
                times: 0,
                currDate: '',
                textred: 'textred'
                textred: 'textred',
                result: '',
                color: ''
            }
        },
        onShow() {
@@ -223,6 +292,7 @@
            that.current = CURRENT
            this.getUrl()
            this.getVisualized()
        },
        onLoad() {
            setInterval(()=>{
@@ -235,9 +305,33 @@
                // this.controller()
                this.getVisualized()
            },1000)
            setTimeout(()=>{
                console.log(this.result);
            },3000)
        },
        methods: {
            // 拣料/盘点入库
            pickIn(e) {
                let _this = this
                uni.request({
                    url: `${_this.commonUrl}/agv/basDevp/visualized/container/pickIn`,
                    data: {devNo: e},
                    method: 'POST',
                    success(res) {
                    }
                })
            },
            // 容器离场
            containerMoveOut(e) {
                let _this = this
                uni.request({
                    url: `${_this.commonUrl}/agv/basDevp/visualized/container/moveOut`,
                    data: {devNo: e},
                    method: 'POST',
                    success(res) {
                    }
                })
            },
            floor() {
                var temp = this.ck1
                this.ck1 = this.ck2
@@ -266,6 +360,7 @@
                    data: JSON.stringify(param),
                    success(res) {
                        res = res.data
                        that.result = res
                        if (res.code === 200 && res.data.body.length>0) {
                            that.locs = [];
                            for (let k of res.data.body) {
@@ -276,21 +371,23 @@
                                            i.agvWrkDetl.orderNo =    JSON.parse(a)
                                        } else {
                                            i.agvWrkDetl.orderNo = []
                                            console.log(i.agvWrkDetl);
                                            // console.log(i.agvWrkDetl);
                                            i.agvWrkDetl.orderNo.push({anfme:i.agvWrkDetl.anfme,orderNo:a})
                                        }
                                    }
                                    // if (i.devNo == 'CS-101-004-01@1') {
                                    //     let a = i.agvWrkDetl.orderNo
                                    //     // console.log(a.length);
                                    //     let b = JSON.parse(a)
                                    //     // console.log(b.length);
                                    // }
                                    // console.log(i.agvWrkDetl);
                                    if (i.agvWaitPakin) {
                                        let a = i.agvWaitPakin.orderNo
                                        if (RegExp(/{/).test(a)) {
                                            i.agvWaitPakin.orderNo =    JSON.parse(a)
                                        } else {
                                            i.agvWaitPakin.orderNo = []
                                            // console.log(i.agvWrkDetl);
                                            i.agvWaitPakin.orderNo.push({anfme:i.agvWaitPakin.anfme,orderNo:a})
                                        }
                                    }
                                    if(i.locSts == 'F') {
                                        i['color'] = 'pakin'
                                    }
                                    that.locs.push(i)
                                }
                            }
@@ -307,219 +404,6 @@
            getServerData() {
                this.chartsDataLine1=JSON.parse(JSON.stringify(this.chartsData.Line))
                this.chartsDataPie2=JSON.parse(JSON.stringify(this.chartsData.Pie))
            },
            // 获取错误信息
            getInfo2() {
                let that = this
                var result = ycqdata.dataInfo3
                var    res = result.data
                that.infoModel(res)
            },
            getError2 () {
                let that = this
                let result = ycqdata.dataError2
                var    res = result.data
                that.errorModel(res)
            },
            getInfo() {
                let that = this
                uni.request({
                    url: that.commonUrl + "/monitor/led",
                    method:"GET",
                    data: {ledId:that.baseLedId},
                    success(result) {
                        that.timeOut = false
                        that.times = 0
                        var    res = result.data
                        that.infoModel(res)
                    },
                    fail(err) {
                        that.timeOut = true
                        that.times = that.times+1
                        that.infoType = 0
                    }
                })
            },
            getError() {
                let that = this
                uni.request({
                    url: that.commonUrl + "/monitor/led/error",
                    data: {ledId:that.baseLedId},
                    method:"GET",
                    success(result) {
                        that.timeOut = false
                        that.times = 0
                        var    res = result.data
                        that.errorModel(res)
                    },
                    fail(err) {
                        that.timeOut = true
                        that.infoType = 0
                    }
                })
            },
            errorModel(res) {
                let that = this
                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
                    that.infoText.title = "其他信息"
                    // that.infoText.title = "异常"
                    that.infoText.error = errorInfo
                } else {
                    if (that.infoType == 1) {
                        return
                    }
                    that.infoType = 0
                }
            },
            infoModel(res) {
                let that = this
                if (res.data && res.data !== "") {
                    if (that.infoType == 2 || that.infoType == 3) {
                        return;
                    }
                    // infoType1:只有拣料等信息
                    that.infoType = 1
                    if (res.data[0].ioType === 101) {
                        that.infoText.title = '全板出库'
                    } else if(res.data[0].ioType === 103) {
                        that.infoText.title = '检料出库'
                    } else if(res.data[0].ioType === 107) {
                        that.infoText.title = '盘点出库'
                    } else if(res.data[0].ioType === 1) {
                        that.infoText.title = '入库'
                    } else if(res.data[0].ioType === 10) {
                        that.infoText.title = '空托入库'
                    } else if(res.data[0].ioType === 110) {
                        that.infoText.title = '空托出库'
                    }
                    that.infoText.workNo = res.data[0].workNo
                    that.infoText.sourceLocNo = res.data[0].sourceLocNo
                    that.infoText.staNo = res.data[0].staNo
                    that.swiperList = res.data[0].matDtos
                    that.infoText.ctnNo = res.data[0].ctnNo
                    if (res.data[0].ctnNo) {
                        that.infoText.orderNo = ''
                        that.textred = 'textred'
                    } else {
                        that.infoText.orderNo = res.data[0].orderNo
                        that.textred = ''
                    }
                    that.infoText.matnr = res.data[0].matDtos[0].matnr
                    that.infoText.barcode = res.data[0].barcode
                    that.infoText.batch = res.data[0].matDtos[0].batch ? res.data[0].matDtos[0].batch : '--'
                    that.infoText.specs = res.data[0].matDtos[0].specs
                    that.infoText.count = res.data[0].matDtos[0].count
                    that.infoText.doneOfTray = res.data[0].doneOfTray
                    that.infoText.totalOfTray = res.data[0].totalOfTray
                    that.infoText.doneOfUnit = res.data[0].doneOfUnit
                    that.infoText.totalOfUnit = res.data[0].totalOfUnit
                } else {
                    if (that.infoType == 2 || that.infoType == 3) {
                        return;
                    }
                    that.infoType = 0
                }
            },
            // 控制器
            controller() {
                switch(this.infoType) {
                    // 有信息 但 没有错误信息
                    case 0:
                        if (this.errorInfoViewShow) {
                            this.errorInfoViewShow = false
                            this.errorInfoMode = ['fade', 'slide-bottom']
                            setTimeout(()=>{
                                this.homeViewShow = true
                                this.homeMode = ['fade', 'slide-bottom']
                            },1000)
                        } else if (this.infoViewShow) {
                            this.infoViewShow = false
                            this.infoMode = ['fade', 'slide-bottom']
                            setTimeout(()=>{
                                this.homeViewShow = true
                                this.homeMode = ['fade', 'slide-bottom']
                            },1000)
                        } else if (this.errorInfoViewShow && this.infoViewShow) {
                            this.errorInfoViewShow = false
                            this.infoViewShow = false
                            this.infoMode = ['fade', 'slide-bottom']
                            setTimeout(()=>{
                                this.homeViewShow = true
                                this.homeMode = ['fade', 'slide-bottom']
                            },1000)
                        }
                        return;
                    case 1:
                        if (this.homeViewShow) {
                            this.homeViewShow = false
                            this.homeMode = ['fade', 'slide-bottom']
                            setTimeout(()=>{
                                this.infoViewShow = true
                                this.infoMode = ['fade', 'slide-bottom']
                            },1000)
                        } else if (this.errorInfoViewShow) {
                            this.errorInfoViewShow = false
                            this.errorInfoMode = ['fade', 'slide-bottom']
                            setTimeout(()=>{
                                this.infoViewShow = true
                                this.infoMode = ['fade', 'slide-bottom']
                            },1000)
                        }
                        return;
                        // 有信息 且 有错误信息
                    case 2:
                        if (this.homeViewShow) {
                            this.homeViewShow = false
                            this.homeMode = ['fade', 'slide-bottom']
                            setTimeout(()=>{
                                this.errorInfoViewShow = true
                                this.errorInfoMode = ['fade', 'slide-bottom']
                            },1000)
                        } else if (this.infoViewShow) {
                            this.infoViewShow = false
                            this.infoMode = ['fade', 'slide-bottom']
                            setTimeout(()=>{
                                this.errorInfoViewShow = true
                                this.errorInfoMode = ['fade', 'slide-bottom']
                            },1000)
                        }
                        return;
                    // 有信息 且 有错误信息
                    case 3:
                        if (this.homeViewShow) {
                            this.homeViewShow = false
                            this.homeMode = ['fade', 'slide-bottom']
                            setTimeout(()=>{
                                this.errorInfoViewShow = true
                                this.errorInfoMode = ['fade', 'slide-bottom']
                            },1000)
                        } else if (this.infoViewShow) {
                            this.infoViewShow = false
                            this.infoMode = ['fade', 'slide-bottom']
                            setTimeout(()=>{
                                this.errorInfoViewShow = true
                                this.errorInfoMode = ['fade', 'slide-bottom']
                            },1000)
                        }
                        return;
                }
            },
            // 主屏幕
            handle(type) {
@@ -576,105 +460,6 @@
                })
            },
            
            // 日历
            getDate() {
                var dt = new Date();
                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();
                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();
                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 = "星期六";
                }
                this.calendar = year + "年" + month + "月" + day + "日 " + hours + ":" + minutes + ":" + seconds + " " + weeks
            },
            getDateFormat(value) {
                var date = new Date(this.currDate);// 获取当前时间
                date.setDate(date.getDate() + value);// 设置天数 -1 天
                var m = date.getMonth() + 1
                var d = date.getDate()
                var newDate = m + '-' + d
                return newDate
            },
            /*************** 折线图 *****************************************************************************************************/
            initlineChart() {
                let that = this
                if(that.commonUrl == 'undefined') {
                    return
                }
                uni.request({
                    url: that.commonUrl + "/monitor/line/charts",
                    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.chartsData.Line.series = res.data.rows
                        }
                    }
                })
            },
            /*************** 饼图 *****************************************************************************************************/
            initPieChart() {
                let that = this
                if(that.commonUrl == 'undefined') {
                    return
                }
                uni.request({
                    url: that.commonUrl + "/monitor/loc/rep",
                    method:'GET',
                    success(result) {
                        var res = result.data
                        if (res.code === 200) {
                            that.chartsData.Pie.series[0].data = res.data.pie
                            that.baseInfo.stockCount = res.data.stockCunt
                            that.baseInfo.emptyCount = res.data.emptyCount
                            that.baseInfo.noneCount = res.data.noneCount
                            that.baseInfo.used = res.data.used
                            that.baseInfo.usedPr = res.data.usedPr
                        }
                    }
                })
            },
            getOther() {
                let that = this
                if(that.commonUrl == 'undefined') {
                    return
                }
                uni.request({
                    url: that.commonUrl + "/monitor/other",
                    data: {
                        crnId: that.baseCrnId,
                        ledId: that.baseLedId,
                    },
                    success(result) {
                        var res = result.data
                        if (res.code === 200) {
                            that.baseInfo.xDistance = res.data.xDistance
                            that.baseInfo.yDistance = res.data.yDistance
                            that.baseInfo.xDuration = res.data.xDuration
                            that.baseInfo.yDuration = res.data.yDuration
                        } else if (res.code === 403) {
                        } else {
                        }
                    }
                })
            },
        }
        
    }
@@ -686,7 +471,8 @@
    
    .main-y {
        font-size: 22rpx;
        background-color: rgba(255, 255, 255, .05);
        /* background-color: rgba(255, 255, 255, .05); */
        background-color: rgba(0, 189, 47, 0.3);
        width:19vw; 
        height: 28vh;
        margin-top: 4px;
@@ -697,6 +483,25 @@
        justify-content: center;
        /* text-align: left; */
    }
    .main-b {
        font-size: 22rpx;
        background-color: rgba(255, 255, 255, .05);
        /* background-color: rgba(0, 189, 47, 0.3); */
        width:19vw;
        height: 28vh;
        margin-top: 4px;
        backdrop-filter: blur(3px);
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        /* align-items: stretch; */
        /* justify-content: center; */
    }
    .pakin {
        background-color: rgba(0, 189, 47, 0.3);
    }
    .y-it {
        display: flex;
        /* background-color: #FF5722; */