#
whycq
2024-09-23 f9d543495a262082fd585aec29bed1fb8fc327fc
pages/phyz/orderOut/orderCheck.vue
@@ -1,31 +1,33 @@
<template>
   <view>
      <view class="list shop-car">
      <view class="list shop-car" v-for="item in dataList">
         <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>库存数量:{{count}}</view>
            <view class="detl-threeCode" style="padding: 16rpx 0;">{{item.csocode}}</view>
            <view>库位:{{item.locNo}}</view>
            <view>编号:{{item.matnr}}</view>
            <view>名称:{{item.maktx}}</view>
            <view>自由项:{{item.containerCode}}</view>
            <view>规格:{{item.specs}}</view>
            <view>批号:{{item.batch}}</view>
            <view>库存数量:{{item.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()">
               <view>出库数量:{{item.anfme}}</view>
               <view style="margin-left: 50rpx;" @click="revise(item)">
                  <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;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>
               <view class="dropdown" @click="toggleDropdown(item)">
                  <!-- <view style="height: 100%;width: 100%; position: fixed;background-color: rgba(0,0,0,.4);left:0;top:0" v-if = "item.isOpen"></view> -->
                  <input type="text" style="width: 270rpx;font-size: 20px;" v-model="item.agvStaNo" placeholder="请选择出库站" placeholder-style="color: #fff">
                  <uni-icons :type="item.isOpen ? 'top' : 'bottom'" color="#fff" style="margin-left: 10rpx;"></uni-icons>
                  <scroll-view scroll-y="ture" class="dropdown-content" v-if="item.isOpen">
                     <view class="dropdown-item" v-for="option in options" @click="selected(option,item)">{{option}}</view>
                  </scroll-view>
               </view>
            </view>
            <button @click="combConfirm(item)" :disabled="combDis">立即出库</button>
         </view>
      </view>
      <!-- 弹窗 -->
@@ -35,7 +37,16 @@
               <!-- 标题 -->
               <view class="title">出库数量</view>
               <view class="popup-item">
                  <uni-number-box :value="data.anfme" :step='1' :min="0" :max="count" color="#747474" @change="changeValue" />
                  <view>
                     <uni-number-box :value="data.anfme" :step='1' :min="0" :max="maxCount" color="#747474" @change="changeValue" />
                  </view>
               </view>
               <view class="popup-item">
                  <view>
                     <view @click="max()" style="padding: 0rpx 16rpx;background-color: #d9d9d9;font-size: 10px;">MAX</view>
                  </view>
               </view>
               <view class="btn">
                  <view class="btn-left" @click="addClose">取消</view>
@@ -44,11 +55,12 @@
            </view>
         </uni-popup>
      </view>
      <view style="height: 100rpx;"></view>
      <!-- 底部操作按钮 -->
      <view class="buttom">
      <!-- <view class="buttom">
         <button size="mini" @click="reset('warn')">稍后处理</button>
         <button size="mini" type="primary" @click="combConfirm('warn')">立即出库</button>
      </view>
         <button size="mini" type="primary" @click="combConfirm('warn')" :disabled="combDis">立即出库</button>
      </view> -->
   </view>
</template>
@@ -59,8 +71,12 @@
            baseUrl: '',
            token: '',
            data: {},
            dataList: [],
            option: '',
            count: 0
            options: [],
            combDis: false,
            maxCount: 0,
            orderType: ''
         }
      },
      onShow() {
@@ -70,44 +86,76 @@
         // const eventChannel = this.$scope.eventChannel; // 兼容APP-NVUE
         const eventChannel = this.getOpenerEventChannel();
         // 监听acceptDataFromOpenerPage事件,获取上一页面通过eventChannel传送到当前页面的数据
         eventChannel.on('mat', function(data) {
            let ids = [data.mat.id]
            _this.getPakoutList(ids,data.mat.locNo)
         // eventChannel.on('mat', function(data) {
         //    let ids = [data.mat.id]
         //    _this.getPakoutList(ids,data.mat.locNo)
         // })
         eventChannel.on('item', function(data) {
            let ids = [data.item.id]
            if (data.item.orderType == 'bcp') {
               _this.getPakoutList(ids,'bcp')
            } else {
               _this.getPakoutList(ids,null)
            }
         })
         eventChannel.on('type', function(data) {
            console.log(data);
            if (data) {
               _this.orderType = data.type
            }
         })
      },
      methods: {
         max() {
            this.data.anfme = this.data.count
         },
         toggleDropdown(item) {
            this.options = []
            item.isOpen = !item.isOpen;
            for   (let k of item.agvStaNos) {
               this.options.push(k)
            }
         },
         selected(option,item) {
            item.agvStaNo = option
         },
         // 订单明细
         getPakoutList(ids,locNo) {
         getPakoutList(ids,bcp) {
            let _this = this
            uni.request({
               url: `${_this.baseUrl}/out/pakout/preview/auth`,
               url: `${_this.baseUrl}/bcp/out/pakout/preview/auth`,
               header: {'token': uni.getStorageSync('token')},
               data: ids,
               method: 'POST',
               success(res) {
                  res = res.data
                  console.log(res);
                  if (res.code === 200) {
                     for (let k of res.data) {
                        if (locNo == k.locNo) {
                        if (k.locNo != null) {
                           k['isOpen'] = false
                           _this.count = k.anfme
                           k['count'] = k.anfme
                           k.anfme = 0
                           _this.data = k
                           return
                           if (_this.orderType == 'bcp') {
                              if (k.locNo.substring(k.locNo.length - 1, k.locNo.length) == 1) {
                                 continue
                              }
                           }
                           _this.dataList.push(k)
                        }
                     }
                  }
                  } 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' })
                  }
               }
            })
         },
         revise() {
         revise(item) {
            this.data = item
            this.maxCount = item.count
            this.$refs.addItem.open()
         },
         addClose() {
@@ -120,21 +168,23 @@
         changeValue(value) {
            this.data.anfme = value
         },
         combConfirm() {
         combConfirm(item) {
            let _this = this
            _this.combDis = true
            if (_this.data.anfme == 0) {
               uni.showToast({ title: '出库数量不能为0!', icon: "error", position: 'top'})
               return
            }
            uni.showLoading({})
            let combList = []
            combList.push(_this.data)
            combList.push(item)
            uni.request({
               url: `${_this.baseUrl}/out/pakout/auth`,
               header: {'token': uni.getStorageSync('token')},
               data: combList,
               method: 'POST',
               success(res) {
                  _this.combDis = false
                  res = res.data
                  if (res.code === 200) {
                     uni.hideLoading({})
@@ -144,7 +194,15 @@
                           delta: 2
                        });
                     },700)
                  } 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' })
                  }
               },
               fail(res) {
                  _this.combDis = false
               }
            })
         }