whycq
2024-05-25 14d2e539f18307ecab4ea415d16c54fff012a1c2
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>
      
@@ -73,10 +75,45 @@
            </view>
         </uni-popup>
      </view>
      <!-- 弹窗 -->
      <view>
         <uni-popup ref="doBack" 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="doBackClose">取消</view>
                  <view class="btn-right" @click="doBackConfirm()">退库</view>
               </view>
            </view>
         </uni-popup>
      </view>
      
      <!-- 弹窗 -->
      <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>
@@ -86,7 +123,7 @@
               </view>
               <view class="btn">
                  <view class="btn-left" @click="containerMoveOutClose">取消</view>
                  <view class="btn-right" @click="containerMoveOut()">入库</view>
                  <view class="btn-right" @click="containerMoveOut2()">确认离场</view>
               </view>
            </view>
         </uni-popup>
@@ -104,7 +141,7 @@
               </view>
               <view class="btn">
                  <view class="btn-left" @click="pickInClose">取消</view>
                  <view class="btn-right" @click="pickIn()">入库</view>
                  <view class="btn-right" @click="pickIn()">确认拣料</view>
               </view>
            </view>
         </uni-popup>
@@ -133,16 +170,39 @@
         </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="allocationInClose">取消</view>
                  <view class="btn-right" @click="allocationInConfirm()">确认进场</view>
               </view>
            </view>
         </uni-popup>
      </view>
      
      
      
      <!-- 底部操作按钮 -->
      <view class="buttom">
         <button size="mini" type="primary" @click="handBack()" v-if="btnType == 'handBack'">转手动</button>
         <button size="mini" type="warn" @click="doBack()" v-if="btnType == 'out' || btnType == 'pick'">退库</button>
         <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="doContainerMoveOut()" v-if="btnType == 'out' && station.locSts == 'F'">确认出库</button>
         <button size="mini" type="primary" @click="doPickIn()" 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>
@@ -151,6 +211,8 @@
   export default {
      data() {
         return {
            baseUrl: '',
            token: '',
            station: null,
            reload: {
               loading: false,
@@ -194,7 +256,11 @@
                  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 {
@@ -218,7 +284,7 @@
                     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' })
                  }
@@ -243,7 +309,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' })
                  }
@@ -282,7 +348,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' })
                  }
@@ -307,7 +373,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 = ''
@@ -316,7 +382,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' })
                  }
@@ -336,7 +402,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' })
                  }
@@ -380,8 +446,17 @@
                        } else if (wrkMast.ioType == 103) {
                           wrkMast['ioTitle'] = '拣料出库'
                           _this.btnType = 'pick'
                        } else if (wrkMast.ioType == 109) {
                           wrkMast['ioTitle'] = '自动回流'
                           _this.btnType = 'handBack'
                        } else if (wrkMast.ioType == 110) {
                           wrkMast['ioTitle'] = '空板出库'
                        } else if (wrkMast.ioType == 111) {
                           wrkMast['ioTitle'] = '调拨出库'
                           _this.btnType = 'allocationOut'
                        } else if (wrkMast.ioType == 112) {
                           wrkMast['ioTitle'] = '调拨入库'
                           _this.btnType = 'null'
                        }
                        if (wrkMast.barcode == barcode) {
                           mast = wrkMast
@@ -398,7 +473,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' })
                  }
@@ -423,7 +498,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' })
                  }
@@ -449,7 +524,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' })
                  }
@@ -468,6 +543,7 @@
            let devNo = {devNo:[this.station.devNo],barcode: _this.barcode}
            uni.request({
               url: `${_this.baseUrl}/agv/basDevp/visualized/container/moveOut`,
               header: { 'token': uni.getStorageSync('token')},
               data: JSON.stringify(devNo),
               method: 'POST',
               success(res) {
@@ -481,9 +557,62 @@
                     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`,
               header: { 'token': uni.getStorageSync('token')},
               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()
                  }
               }
            })
@@ -499,6 +628,7 @@
            let _this = this
            uni.request({
               url: `${_this.baseUrl}/agv/basDevp/visualized/container/pickIn`,
               header: { 'token': uni.getStorageSync('token')},
               data: {devNo: _this.station.devNo,barcode: _this.barcode},
               method: 'POST',
               success(res) {
@@ -509,7 +639,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' })
                  }
@@ -537,13 +667,136 @@
                     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' })
                  }
               }
            });
         },
         doBack() {
            this.$refs.doBack.open()
         },
         doBackClose() {
            this.$refs.doBack.close()
         },
         doBackConfirm() {
            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/doBack',
               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.doBack.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' })
                  }
               }
            });
         },
         handBack() {
            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/handBack',
               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) {
                     setTimeout(()=> {
                        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>
@@ -552,13 +805,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;
@@ -583,7 +836,7 @@
      padding: 24rpx;
   }
   .wrkMast-wrkNo {
      font-size: 32px;
      font-size: 30px;
      font-weight: bold;
      padding: 24rpx 0;
      display: flex;