#
whycq
2024-05-18 94c4496ebe697ed0fa560e7620f5146ef4cc62e6
pages/phyz/stationManage/stationDetl.vue
@@ -19,11 +19,13 @@
      <!-- 工作档 -->
      <view class="wrkMast" v-if="wrkMast">
         <view class="wrkMast-wrkNo">
            <view style="flex:3">工作号: {{wrkMast.wrkNo}}</view>
            <view style="flex:2;text-align: right;">{{wrkMast.ioTitle}}</view>
            <view style="flex:5">工作号: {{wrkMast.wrkNo}}</view>
            <view style="flex:3;text-align: right;">{{wrkMast.ioTitle}}</view>
         </view>
         <view>工作类型: {{wrkMast.ioType$}}</view>
         <view>工作状态: {{wrkMast.wrkSts$}}</view>
         <view>源库位: {{wrkMast.sourceLocNo}}</view>
         <view>货架码: {{wrkMast.barcode}}</view>
      </view>
      
      <!-- 明细 -->
@@ -34,7 +36,7 @@
            <view>商品编码:{{wrkDetl.matnr}}</view>
            <view>销售订单号:{{wrkDetl.threeCode ? wrkDetl.threeCode : ' --'}}</view>
            <view>自由项:{{wrkDetl.deadTime ? wrkDetl.deadTime : ' --'}}</view>
            <view>数量:{{wrkDetl.anfme}}</view>
            <view>作业数量:{{wrkDetl.anfme}}</view>
         </view>
      </view>
      
@@ -76,6 +78,60 @@
      
      <!-- 弹窗 -->
      <view>
         <uni-popup ref="doContainerMoveOut" type="dialog">
            <view class="popup">
               <!-- 标题 -->
               <view class="title">请输入货架码</view>
               <view class="popup-item">
                  <view class="popup-item-left">货架码:</view>
                  <view class="popup-item-right"><input type="text" v-model="barcode"></view>
               </view>
               <view class="btn">
                  <view class="btn-left" @click="containerMoveOutClose">取消</view>
                  <view class="btn-right" @click="containerMoveOut()">确认出库</view>
               </view>
            </view>
         </uni-popup>
      </view>
      <!-- 弹窗 -->
      <view>
         <uni-popup ref="doContainerMoveOut2" type="dialog">
            <view class="popup">
               <!-- 标题 -->
               <view class="title">请输入空货架码</view>
               <view class="popup-item">
                  <view class="popup-item-left">货架码:</view>
                  <view class="popup-item-right"><input type="text" v-model="barcode"></view>
               </view>
               <view class="btn">
                  <view class="btn-left" @click="containerMoveOutClose">取消</view>
                  <view class="btn-right" @click="containerMoveOut2()">确认离场</view>
               </view>
            </view>
         </uni-popup>
      </view>
      <!-- 弹窗 -->
      <view>
         <uni-popup ref="doPickIn" type="dialog">
            <view class="popup">
               <!-- 标题 -->
               <view class="title">请输入空货架码</view>
               <view class="popup-item">
                  <view class="popup-item-left">货架码:</view>
                  <view class="popup-item-right"><input type="text" v-model="barcode"></view>
               </view>
               <view class="btn">
                  <view class="btn-left" @click="pickInClose">取消</view>
                  <view class="btn-right" @click="pickIn()">确认拣料</view>
               </view>
            </view>
         </uni-popup>
      </view>
      <!-- 弹窗 -->
      <view>
         <uni-popup ref="emptyOut" type="dialog">
            <view class="popup">
               <!-- 标题 -->
@@ -97,6 +153,23 @@
         </uni-popup>
      </view>
      
      <!-- 弹窗 -->
      <view>
         <uni-popup ref="allocationIn" type="dialog">
            <view class="popup">
               <!-- 标题 -->
               <view class="title">请输入货架码</view>
               <view class="popup-item">
                  <view class="popup-item-left">货架码:</view>
                  <view class="popup-item-right"><input type="text" v-model="barcode"></view>
               </view>
               <view class="btn">
                  <view class="btn-left" @click="pickInClose">取消</view>
                  <view class="btn-right" @click="allocationInConfirm()">确认进场</view>
               </view>
            </view>
         </uni-popup>
      </view>
      
      
      
@@ -104,9 +177,13 @@
      <view class="buttom">
         <button size="mini" type="primary" @click="emptyPakin()" v-if="btnType == 'emptyPakin'">空板入库</button>
         <button size="mini" type="primary" @click="emptyOut()" v-if="btnType == 'emptyPakin'">呼叫空板</button>
         <button size="mini" type="primary" @click="containerMoveOut()" v-if="btnType == 'out' && station.locSts == 'F'">确认出库</button>
         <button size="mini" type="primary" @click="pickIn()" v-if="btnType == 'pick' && station.locSts == 'F'">已拣料回库</button>
         <button size="mini" type="primary" @click="startPakin()" v-if="btnType == 'start' && station.locSts == 'F'">启动入库</button>
         <button size="mini" type="primary" @click="doContainerMoveOut2()" v-if="btnType == 'out'">货架离场</button>
         <button size="mini" type="primary" @click="doContainerMoveOut()" v-if="btnType == 'out'">确认出库</button>
         <button size="mini" type="primary" @click="doPickIn()" v-if="btnType == 'pick'">已拣料回库</button>
         <button size="mini" type="primary" @click="doPickIn2()" v-if="btnType == 'pick'">再次拣料</button>
         <button size="mini" type="primary" @click="startPakin()" v-if="btnType == 'start'">启动入库</button>
         <button size="mini" type="primary" @click="allocationOut()" v-if="btnType == 'allocationOut'">调拨离场</button>
         <button size="mini" type="primary" @click="allocationIn()" v-if="btnType == 'allocationIn'">调拨进场</button>
      </view>
   </view>
</template>
@@ -115,6 +192,8 @@
   export default {
      data() {
         return {
            baseUrl: '',
            token: '',
            station: null,
            reload: {
               loading: false,
@@ -139,7 +218,6 @@
         const eventChannel = this.getOpenerEventChannel();
         // 监听acceptDataFromOpenerPage事件,获取上一页面通过eventChannel传送到当前页面的数据
         eventChannel.on('item', function(data) {
            console.log(data);
            _this.station = data.item
            _this.reloadStation()
         })
@@ -158,9 +236,12 @@
               success(res) {
                  res = res.data
                  if (res.code === 200) {
                     if (res.data.records[0].locSts == 'O') {
                        _this.btnType = 'emptyPakin'
                        if (res.data.records[0].devNo.substring(0, 2) == "DB") {
                           _this.btnType = 'allocationIn'
                        } else {
                           _this.btnType = 'emptyPakin'
                        }
                     } else if (res.data.records[0].locSts == 'F') {
                        _this.btnType = 'pakin' 
                     } else {
@@ -180,11 +261,11 @@
                        _this.reload.loadingText = '更新状态'
                        _this.getContainerType()
                     },500)
                     _this.getWrkMast()
                     _this.getWrkMast(res.data.records[0].barcode)
                     uni.showToast({ title: '更新成功!', icon: "none", position: 'top' })
                  } else if (res.code == 403) {
                     uni.showToast({ title: res.msg, icon: "error", position: 'top' })
                     setTimeout(() => { uni.reLaunch({ url: '../login/login' }); }, 1000);
                     setTimeout(() => { uni.reLaunch({ url: '../../login/login' }); }, 1000);
                  } else {
                     uni.showToast({ title: res.msg, icon: "error", position: 'top' })
                  }
@@ -209,7 +290,7 @@
                     _this.reloadStation()
                  } else if (res.code == 403) {
                     uni.showToast({ title: res.msg, icon: "error", position: 'top' })
                     setTimeout(() => { uni.reLaunch({ url: '../login/login' }); }, 1000);
                     setTimeout(() => { uni.reLaunch({ url: '../../login/login' }); }, 1000);
                  } else {
                     uni.showToast({ title: res.msg, icon: "error", position: 'top' })
                  }
@@ -248,7 +329,7 @@
                     uni.showToast({ title: '启动入库', icon: "success", position: 'top' })
                  } else if (res.code == 403) {
                     uni.showToast({ title: res.msg, icon: "error", position: 'top' })
                     setTimeout(() => { uni.reLaunch({ url: '../login/login' }); }, 1000);
                     setTimeout(() => { uni.reLaunch({ url: '../../login/login' }); }, 1000);
                  } else {
                     uni.showToast({ title: res.msg, icon: "error", position: 'top' })
                  }
@@ -273,7 +354,7 @@
               method: 'POST',
               header: { 'token': uni.getStorageSync('token') },
               success(res) {
                  var res = result.data
                  var res = res.data
                  if (res.code === 200) {
                     setTimeout(()=> {
                        _this.containerType = ''
@@ -282,7 +363,7 @@
                     uni.showToast({ title: '呼叫成功', icon: "success", position: 'top' })
                  } else if (res.code == 403) {
                     uni.showToast({ title: res.msg, icon: "error", position: 'top' })
                     setTimeout(() => { uni.reLaunch({ url: '../login/login' }); }, 1000);
                     setTimeout(() => { uni.reLaunch({ url: '../../login/login' }); }, 1000);
                  } else {
                     uni.showToast({ title: res.msg, icon: "error", position: 'top' })
                  }
@@ -302,7 +383,7 @@
                     _this.selects = res.data
                  } else if (res.code == 403) {
                     uni.showToast({ title: res.msg, icon: "error", position: 'top' })
                     setTimeout(() => { uni.reLaunch({ url: '../login/login' }); }, 1000);
                     setTimeout(() => { uni.reLaunch({ url: '../../login/login' }); }, 1000);
                  } else {
                     uni.showToast({ title: res.msg, icon: "error", position: 'top' })
                  }
@@ -318,7 +399,7 @@
            this.containerType = option
         },
         // 查询工作档
         getWrkMast() {
         getWrkMast(barcode) {
            let _this = this
            uni.request({
               url: `${_this.baseUrl}/agv/wrkMast/list/auth`,
@@ -332,23 +413,33 @@
               success(res) {
                  res = res.data
                  if (res.code === 200 && res.data.records.length > 0) {
                     if (res.data.records[0].ioType == 1) {
                        res.data.records[0]['ioTitle'] = '入库'
                     } else if (res.data.records[0].ioType == 10) {
                        res.data.records[0]['ioTitle'] = '空板入库'
                     } else if (res.data.records[0].ioType == 53) {
                        res.data.records[0]['ioTitle'] = '拣料回库'
                     } else if (res.data.records[0].ioType == 101) {
                        res.data.records[0]['ioTitle'] = '全板出库'
                        _this.btnType = 'out'
                     } else if (res.data.records[0].ioType == 103) {
                        res.data.records[0]['ioTitle'] = '拣料出库'
                        _this.btnType = 'pick'
                     } else if (res.data.records[0].ioType == 110) {
                        res.data.records[0]['ioTitle'] = '空板出库'
                     let mast = null
                     for (let wrkMast of res.data.records) {
                        if (wrkMast.ioType == 1) {
                           wrkMast['ioTitle'] = '入库'
                        } else if (wrkMast.ioType == 10) {
                           wrkMast['ioTitle'] = '空板入库'
                        } else if (wrkMast.ioType == 53) {
                           wrkMast['ioTitle'] = '拣料回库'
                        } else if (wrkMast.ioType == 101) {
                           wrkMast['ioTitle'] = '全板出库'
                           _this.btnType = 'out'
                        } else if (wrkMast.ioType == 103) {
                           wrkMast['ioTitle'] = '拣料出库'
                           _this.btnType = 'pick'
                        } else if (wrkMast.ioType == 110) {
                           wrkMast['ioTitle'] = '空板出库'
                        } else if (wrkMast.ioType == 111) {
                           wrkMast['ioTitle'] = '空板出库'
                           _this.btnType = 'allocationOut'
                        }
                        if (wrkMast.barcode == barcode) {
                           mast = wrkMast
                        }
                     }
                     _this.wrkMast = res.data.records[0]
                     _this.getWrkDetl(_this.wrkMast.wrkNo)
                     _this.wrkMast = mast
                     _this.getWrkDetl(mast.wrkNo)
                  } else if (res.code === 200 && res.data.records.length == 0) {
                     _this.wrkMast = null
                     _this.wrkDetls = []
@@ -357,7 +448,7 @@
                     }
                  } else if (res.code == 403) {
                     uni.showToast({ title: res.msg, icon: "error", position: 'top' })
                     setTimeout(() => { uni.reLaunch({ url: '../login/login' }); }, 1000);
                     setTimeout(() => { uni.reLaunch({ url: '../../login/login' }); }, 1000);
                  } else {
                     uni.showToast({ title: res.msg, icon: "error", position: 'top' })
                  }
@@ -382,7 +473,7 @@
                     _this.wrkDetls = res.data.records
                  } else if (res.code == 403) {
                     uni.showToast({ title: res.msg, icon: "error", position: 'top' })
                     setTimeout(() => { uni.reLaunch({ url: '../login/login' }); }, 1000);
                     setTimeout(() => { uni.reLaunch({ url: '../../login/login' }); }, 1000);
                  } else {
                     uni.showToast({ title: res.msg, icon: "error", position: 'top' })
                  }
@@ -408,7 +499,7 @@
                     _this.btnType = 'start'
                  } else if (res.code == 403) {
                     uni.showToast({ title: res.msg, icon: "error", position: 'top' })
                     setTimeout(() => { uni.reLaunch({ url: '../login/login' }); }, 1000);
                     setTimeout(() => { uni.reLaunch({ url: '../../login/login' }); }, 1000);
                  } else {
                     uni.showToast({ title: res.msg, icon: "error", position: 'top' })
                  }
@@ -416,9 +507,15 @@
            })
         },
         // 全板出库 确认出库
         doContainerMoveOut() {
            this.$refs.doContainerMoveOut.open()
         },
         containerMoveOutClose() {
            this.$refs.doContainerMoveOut.close()
         },
         containerMoveOut() {
            let _this = this
            let devNo = {devNo:[this.station.devNo]}
            let devNo = {devNo:[this.station.devNo],barcode: _this.barcode}
            uni.request({
               url: `${_this.baseUrl}/agv/basDevp/visualized/container/moveOut`,
               data: JSON.stringify(devNo),
@@ -426,6 +523,7 @@
               success(res) {
                  res = res.data
                  if (res.code === 200) {
                     _this.$refs.doContainerMoveOut.close()
                     setTimeout(()=> {
                        _this.barcode = ''
                        _this.reloadStation()
@@ -433,28 +531,87 @@
                     uni.showToast({ title: '确认完成', icon: "success", position: 'top' }) 
                  } else if (res.code == 403) {
                     uni.showToast({ title: res.msg, icon: "error", position: 'top' })
                     setTimeout(() => { uni.reLaunch({ url: '../login/login' }); }, 1000);
                     setTimeout(() => { uni.reLaunch({ url: '../../login/login' }); }, 1000);
                  } else {
                     uni.showToast({ title: res.msg, icon: "error", position: 'top' })
                  }
               }
            })
         },
         // 全板出库 容器离场
         doContainerMoveOut2() {
            this.$refs.doContainerMoveOut2.open()
         },
         containerMoveOutClose() {
            this.$refs.doContainerMoveOut2.close()
         },
         containerMoveOut2() {
            let _this = this
            let devNo = {devNo:[this.station.devNo],barcode: _this.barcode}
            uni.request({
               url: `${_this.baseUrl}/agv/basDevp/visualized/container/moveOut2`,
               data: JSON.stringify(devNo),
               method: 'POST',
               success(res) {
                  res = res.data
                  if (res.code === 200) {
                     _this.$refs.doContainerMoveOut2.close()
                     setTimeout(()=> {
                        _this.barcode = ''
                        _this.reloadStation()
                     },1000)
                     uni.showToast({ title: '离场完成', icon: "success", position: 'top' })
                  } else if (res.code == 403) {
                     uni.showToast({ title: res.msg, icon: "error", position: 'top' })
                     setTimeout(() => { uni.reLaunch({ url: '../../login/login' }); }, 1000);
                  } else {
                     uni.showToast({ title: res.msg, icon: "error", position: 'top' })
                  }
               }
            })
         },
         // 再次拣料
         doPickIn2() {
            let _this = this
            let item = this.wrkMast
            uni.navigateTo({
               url: './pickAgain',
               success(res) {
                  res.eventChannel.emit('item', {
                     item: item,
                     wrkDetls: _this.wrkDetls,
                  })
               },
               events: {
                  acceptDataFromOpenedPage: function(data) {
                     _this.reloadStation()
                  }
               }
            })
         },
         // 拣料出库 确认后回库
         doPickIn() {
            this.$refs.doPickIn.open()
         },
         pickInClose() {
            this.$refs.doPickIn.close()
         },
         pickIn() {
            let _this = this
            uni.request({
               url: `${_this.baseUrl}/agv/basDevp/visualized/container/pickIn`,
               data: {devNo: _this.station.devNo},
               data: {devNo: _this.station.devNo,barcode: _this.barcode},
               method: 'POST',
               success(res) {
                  res = res.data 
                  if (res.code === 200) {
                     _this.$refs.doPickIn.close()
                     _this.barcode = ''
                     _this.reloadStation()
                  } else if (res.code == 403) {
                     uni.showToast({ title: res.msg, icon: "error", position: 'top' })
                     setTimeout(() => { uni.reLaunch({ url: '../login/login' }); }, 1000);
                     setTimeout(() => { uni.reLaunch({ url: '../../login/login' }); }, 1000);
                  } else {
                     uni.showToast({ title: res.msg, icon: "error", position: 'top' })
                  }
@@ -482,13 +639,76 @@
                     uni.showToast({ title: '启动入库', icon: "success", position: 'top' })
                  } else if (res.code == 403) {
                     uni.showToast({ title: res.msg, icon: "error", position: 'top' })
                     setTimeout(() => { uni.reLaunch({ url: '../login/login' }); }, 1000);
                     setTimeout(() => { uni.reLaunch({ url: '../../login/login' }); }, 1000);
                  } else {
                     uni.showToast({ title: res.msg, icon: "error", position: 'top' })
                  }
               }
            });
         },
         // 调拨离场
         allocationOut() {
            let that = this
            let params = []
            let param = { devNo: this.station.devNo, containerCode: this.station.barcode, }
            params.push(param)
            uni.request({
               url: that.baseUrl + '/agvMobile/hand/control/allocationOut',
               header: {'token': uni.getStorageSync('token')},
               data: {devNo: that.station.devNo},
               method: 'POST',
               success(result) {
                  var res = result.data
                  if (res.code === 200) {
                     setTimeout(()=> {
                        that.barcode = ''
                        that.reloadStation()
                     },1000)
                     uni.showToast({ title: '离场成功', icon: "success", position: 'top' })
                  } else if (res.code == 403) {
                     uni.showToast({ title: res.msg, icon: "error", position: 'top' })
                     setTimeout(() => { uni.reLaunch({ url: '../../login/login' }); }, 1000);
                  } else {
                     uni.showToast({ title: res.msg, icon: "error", position: 'top' })
                  }
               }
            });
         },
         allocationIn() {
            this.$refs.allocationIn.open()
         },
         allocationInClose() {
            this.$refs.allocationIn.close()
         },
         allocationInConfirm() {
            let that = this
            let params = []
            let param = { devNo: this.station.devNo, containerCode: this.station.barcode, }
            params.push(param)
            uni.request({
               url: that.baseUrl + '/agvMobile/hand/control/allocationIn',
               header: {'token': uni.getStorageSync('token')},
               data: {devNo: that.station.devNo, barcode: that.barcode},
               method: 'POST',
               success(result) {
                  var res = result.data
                  if (res.code === 200) {
                     that.$refs.allocationIn.close()
                     setTimeout(()=> {
                        that.barcode = ''
                        that.reloadStation()
                     },1000)
                     uni.showToast({ title: '进场成功', icon: "success", position: 'top' })
                  } else if (res.code == 403) {
                     uni.showToast({ title: res.msg, icon: "error", position: 'top' })
                     setTimeout(() => { uni.reLaunch({ url: '../../login/login' }); }, 1000);
                  } else {
                     uni.showToast({ title: res.msg, icon: "error", position: 'top' })
                  }
               }
            });
         }
      }
   }
</script>
@@ -497,13 +717,13 @@
   @import url('../../../static/css/common/order.css');
   
   .station {
      font-size: 18px;
      padding: 24rpx;
      font-size: 15px;
      padding: 18rpx;
   }
   .station-title {
      font-size: 32px;
      font-size: 28px;
      font-weight: bold;
      padding: 24rpx 0;
      padding: 18rpx 0;
   }
   .station-barcode {
      font-size: 24px;
@@ -528,7 +748,7 @@
      padding: 24rpx;
   }
   .wrkMast-wrkNo {
      font-size: 32px;
      font-size: 30px;
      font-weight: bold;
      padding: 24rpx 0;
      display: flex;