| | |
| | | </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="../../static/barcode.png" mode="aspectFit"></image> |
| | | <image style="height: 100%;" |
| | | src="../../static/zy_logo.png" mode="aspectFit"></image> |
| | | </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> |
| | | </view> |
| | | <!-- 日历 --> |
| | | <view class="time-tools">{{calendar}}</view> |
| | | <view class="button-left" @click="ejected()"></view> |
| | | <view class="button-right" @click="ejected()"></view> |
| | | <!-- 主体 --> |
| | | <view class="info-main"> |
| | | <view class="info-box"> |
| | | <y-box> |
| | | <!-- 文本容器 --> |
| | | <view class="text-content" v-for="item in swiperList"> |
| | | <view>目标站:{{infoText.staNo}}</view> |
| | | <view>商品编码:{{item.matnr}}</view> |
| | | <view>商品名称:{{item.maknx}}</view> |
| | | <view>规格:{{item.specs}}</view> |
| | | <view>数量:{{item.count}} / {{item.total ? item.total : '--'}}</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> --> |
| | | <!-- body --> |
| | | <!-- <view class="swiper-body"> --> |
| | | <!-- swiper 一些说明 |
| | | 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> |
| | | <view style="width: 10%;">{{item.count}}</view> |
| | | </swiper-item> |
| | | </swiper> |
| | | </view> --> |
| | | </view> |
| | | </y-box> |
| | | </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> |
| | | </view> |
| | | <!-- 日历 --> |
| | | <view class="time-tools">{{calendar}}</view> |
| | | <view class="button-left" @click="ejected()"></view> |
| | | <view class="button-right" @click="ejected()"></view> |
| | | <!-- 主体 --> |
| | | <view class="info-main"> |
| | | <view class="info-box"> |
| | | <y-box> |
| | | <!-- 文本容器 --> |
| | | <view class="text-content"> |
| | | <!-- head --> |
| | | <!-- <view class="swiper-head"> |
| | | <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;">任务号</view> |
| | | <view style="flex: 3;">商品编号</view> |
| | | <view style="flex: 2;">商品名称</view> |
| | | <view style="flex: 2;">规格</view> |
| | | <view style="flex: 2;">工序</view> |
| | | <view style="flex: 2;">数量</view> |
| | | |
| | | </view> |
| | | <!-- body --> |
| | | <view class="swiper-body"> |
| | | <!-- swiper 一些说明 |
| | | 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;">{{infoText.workNo}}</view> |
| | | <view style="flex: 3;">{{item.matnr}}</view> |
| | | <view style="flex: 2;">{{item.maknx}}</view> |
| | | <view style="flex: 2;">{{item.specs}}</view> |
| | | <view style="flex: 2;">{{item.sku}}</view> |
| | | <view style="flex: 2;">{{item.count}}/{{item.total}}</view> |
| | | </swiper-item> |
| | | </swiper> |
| | | </view> |
| | | </view> |
| | | </y-box> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </uni-transition> |
| | | <!-- 异常信息 --> |
| | | <uni-transition :duration="duration" :mode-class="errorInfoMode" :show="errorInfoViewShow"> |
| | | <view class="error-info-view"> |
| | |
| | | </view> |
| | | </view> |
| | | </view> |
| | | <!-- 小车异常 --> |
| | | <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> |
| | | </uni-transition> |
| | | </view> |
| | | <view style="color: #FFF;position: fixed;bottom: 10px;left: 10px;" v-show="timeOut"> |
| | | 连接超时: {{times}} s |
| | | </view> |
| | |
| | | homeViewShow: true, |
| | | infoViewShow: false, |
| | | errorInfoViewShow: false, |
| | | errorBoardShow: false, |
| | | homeMode: [], |
| | | carInfo: [], |
| | | infoMode: [], |
| | | errorInfoMode: [], |
| | | baseInfo: { |
| | |
| | | infoType: 0, |
| | | text: '', |
| | | infoText: { |
| | | workNo: '', |
| | | title: '', |
| | | staNo: "", |
| | | matnr: "", |
| | |
| | | setInterval(() => { |
| | | this.getDate2() |
| | | this.getUrl() |
| | | // this.getInfo() |
| | | // this.getError() |
| | | this.getInfo2() |
| | | this.getError2() |
| | | this.getInfo() |
| | | this.getError() |
| | | // this.getInfo2() |
| | | // this.getError2() |
| | | this.controller() |
| | | this.getCarInfo() |
| | | }, 1000) |
| | | |
| | | setInterval(() => { |
| | |
| | | }, 1800000) |
| | | }, |
| | | methods: { |
| | | getCarInfoTest() { |
| | | let that = this |
| | | var result = ycqdata.carError |
| | | var res = result.data |
| | | that.carInfoModel(res) |
| | | }, |
| | | getCarInfo() { |
| | | let that = this |
| | | uni.request({ |
| | | url: that.commonUrl + "/monitor/device/error", |
| | | method: "GET", |
| | | success(result) { |
| | | 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) { |
| | | 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); |
| | | }, |
| | |
| | | if (res.data[0].ioType === 101) { |
| | | that.infoText.title = '全板出库' |
| | | } else if (res.data[0].ioType === 103) { |
| | | that.infoText.title = '检料出库' |
| | | 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 === 54) { |
| | | that.infoText.title = '并板入库' |
| | | } else if (res.data[0].ioType === 110) { |
| | | that.infoText.title = '空板出库' |
| | | } else if (res.data[0].ioType === 53) { |
| | | that.infoText.title = '拣料再入库' |
| | | } else if (res.data[0].ioType === 57) { |
| | | that.infoText.title = '盘点再入库' |
| | | } |
| | | |
| | | that.infoText.staNo = res.data[0].staNo |
| | | that.infoText.workNo = res.data[0].workNo |
| | | that.swiperList = res.data[0].matDtos |
| | | // that.infoText.matnr = res.data[0].matDtos[0].matnr |
| | | // that.infoText.specs = res.data[0].matDtos[0].specs |
| | |
| | | .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> |