#
whycq
2024-04-11 80c6ee8ea8adf91e4dd118c8deff948e46a8e043
pages/phyz/orderOut/orderCheck.vue
@@ -1,25 +1,53 @@
<template>
   <view>
      <view class="list">
      <view class="list shop-car">
         <view class="list-left">
            <view class="detl-threeCode" style="padding: 16rpx 0;">{{data.csocode}}</view>
            <view>库位:{{data.locNo}}</view>
            <view>编号:{{data.matnr}}</view>
            <view>名称:{{data.maktx}}</view>
            <view>自由项:{{data.containerCode}}</view>
            <view>规格:{{data.specs}}</view>
            <view>批号:{{data.batch}}</view>
            <view class="list-anfme">数量:{{data.anfme}}</view>
            <view class="list-qty-1" v-if="data.anfme > data.qty">作业数量:{{data.qty}}</view>
            <view class="list-qty-2" v-if="data.anfme <= data.qty">作业数量:{{data.qty}}</view>
            <view>货位:{{data.locNo}}</view>
            <view style="display: flex;">出库站:
            <view>库存数量:{{count}}</view>
            <view class="detl-threeCode" style="display: flex;padding: 32rpx 0;align-items: center;font-size: 24px;">
               <view>出库数量:{{data.anfme}}</view>
               <view style="margin-left: 50rpx;" @click="revise()">
                  <uni-icons type="compose" size="30" color="#fff"></uni-icons>
               </view>
            </view>
            <view class="detl-threeCode" style="display: flex;padding: 0 0 32rpx 0;font-size: 24px;">出库站:
               <view class="dropdown" @click="toggleDropdown(data)">
                  <input type="text" style="width: 270rpx;" v-model="data.agvStaNo" placeholder="请选择出库站">
                  <uni-icons :type="data.isOpen ? 'top' : 'bottom'" color="#c1c1c1" style="margin-left: 10rpx;"></uni-icons>
                  <input type="text" style="width: 270rpx;font-size: 20px;" v-model="data.agvStaNo" placeholder="请选择出库站" placeholder-style="color: #fff">
                  <uni-icons :type="data.isOpen ? 'top' : 'bottom'" color="#fff" style="margin-left: 10rpx;"></uni-icons>
                  <scroll-view scroll-y="ture" class="dropdown-content" v-if="data.isOpen">
                     <view class="dropdown-item" v-for="option in data.agvStaNos" @click="selected(option,data)">{{option}}</view>
                  </scroll-view>
               </view>
            </view>
         </view>
      </view>
      <!-- 弹窗 -->
      <view>
         <uni-popup ref="addItem" type="dialog">
            <view class="popup">
               <!-- 标题 -->
               <view class="title">出库数量</view>
               <view class="popup-item">
                  <uni-number-box :value="count" :step='1' :max="9999999" color="#747474" @change="changeValue" />
               </view>
               <view class="btn">
                  <view class="btn-left" @click="addClose">取消</view>
                  <view class="btn-right" @click="addConfirm()">确认</view>
               </view>
            </view>
         </uni-popup>
      </view>
      <!-- 底部操作按钮 -->
      <view class="buttom">
         <button size="mini" @click="reset('warn')">稍后处理</button>
         <button size="mini" type="primary" @click="combConfirm('warn')">立即出库</button>
      </view>
   </view>
</template>
@@ -31,7 +59,8 @@
            baseUrl: '',
            token: '',
            data: {},
            option: ''
            option: '',
            count: 0
         }
      },
      onLoad() {
@@ -41,16 +70,21 @@
         // const eventChannel = this.$scope.eventChannel; // 兼容APP-NVUE
         const eventChannel = this.getOpenerEventChannel();
         // 监听acceptDataFromOpenerPage事件,获取上一页面通过eventChannel传送到当前页面的数据
         eventChannel.on('item', function(data) {
            for (let item of data.mats) {
               _this.ids.push(item.id)
            }
            _this.getPakoutList(_this.ids)
         eventChannel.on('mat', function(data) {
            console.log(data);
            let ids = [data.mat.id]
            _this.getPakoutList(ids,data.mat.locNo)
         })
      },
      methods: {
         toggleDropdown(item) {
            item.isOpen = !item.isOpen;
         },
         selected(option,item) {
            item.agvStaNo = option
         },
         // 订单明细
         getPakoutList(ids) {
         getPakoutList(ids,locNo) {
            let _this = this
            uni.request({
               url: `${_this.baseUrl}/out/pakout/preview/auth`,
@@ -61,14 +95,135 @@
                  res = res.data
                  console.log(res);
                  if (res.code === 200) {
                     for (let k of res.data) {
                        if (locNo == k.locNo) {
                           k['isOpen'] = false
                           _this.count = k.anfme
                           _this.data = k
                           return
                        }
                     }
                  } 
               }
            })
         },
         revise() {
            this.$refs.addItem.open()
         },
         addClose() {
            this.$refs.addItem.close()
            this.data.anfme = 0
         },
         addConfirm() {
            this.$refs.addItem.close()
         },
         changeValue(value) {
            this.data.anfme = value
         },
         combConfirm() {
            let _this = this
            let combList = []
            combList.push(_this.data)
            uni.request({
               url: `${_this.baseUrl}/out/pakout/auth`,
               header: {'token': uni.getStorageSync('token')},
               data: combList,
               method: 'POST',
               success(res) {
                  res = res.data
                  console.log(res);
                  if (res.code === 200) {
                     uni.showToast({ title: '出库成功', icon: "success", position: 'top'})
                     setTimeout(()=> {
                        uni.navigateBack({
                           delta: 2
                        });
                     },700)
                  }
               }
            })
         }
      }
   }
</script>
<style>
<style scoped>
   @import url('../../../static/css/common/order.css');
   .shop-car {
      background-color: #2299ff;
      color: #fff;
   }
   .detl-threeCode {
      font-size: 34px;
      font-weight: bold;
   }
   .dropdown-item {
      font-size: 20px;
      font-weight: bold;
   }
   .popup {
      width: 80vw;
      min-height: 100rpx;
      background-color: #FFF;
      border-radius: 25rpx;
      position: relative;
   }
   .title {
      height: 100rpx;
      line-height: 100rpx;
      width: 100%;
      color: #606266;
      text-align: center;
      font-size: 16px;
   }
   .popup-item {
      height: 80rpx;
      line-height: 80rpx;
      display: flex;
      align-items: center;
      justify-content: center;
   }
   .popup-item-left {
      width: 16vw;
      padding-right: 20rpx;
      text-align: right;
      color: #606266;
   }
   .popup-item-right {
      display: flex;
      align-items: center;
      width: 50vw;
      height: 50rpx;
      padding: 2px 5px;
      border: 1px solid #E4E7ED;
      border-radius: 5rpx;
   }
   .popup-item-right input{
      color: #606266;
   }
   .btn {
      display: flex;
      height: 90rpx;
      margin-top: 20rpx;
      border-top: 1px solid #DCDFE6;
      justify-content: center;
      align-items: center;
   }
   .btn-left {
      display: flex;
      flex: 1;
      height: 100%;
      justify-content: center;
      align-items: center;
      color: #606266;
      border-right: 1px solid #DCDFE6;
   }
   .btn-right {
      display: flex;
      flex: 1;
      justify-content: center;
      align-items: center;
      color: #409EFF;
   }
</style>