whycq
2024-11-19 fe8fb74ce94e7bee23ed47b7175236248ac93b98
pages/pakin/pakin.vue
@@ -1,5 +1,23 @@
<template>
   <view>
      <!-- ----------------------------------------------程序标题栏----------------------------------------------------------- -->
      <view class="status_bar">
         <!-- 这里是状态栏 -->
      </view>
      <uni-nav-bar left-icon="left" background-color="#f8f8f8" title="组托入库" @clickLeft="back"  :fixed="true"
         :border="false" rightWidth="160rpx" leftWidth="160rpx"
         >
         <block slot="right">
            <view class="city">
               <view>
                  <text class="uni-nav-bar-text">{{store}}</text>
               </view>
            </view>
         </block>
       </uni-nav-bar>
      <!-- ----------------------------------------------程序标题栏----------------------------------------------------------- -->
      <!-- ----------------------------------------------  输入框  ----------------------------------------------------------- -->
      <view class="code">
         <view class="item">
            <view class="code-decs">托盘码:</view>
@@ -8,14 +26,27 @@
         </view>
         <view class="item">
            <view class="code-decs">物料码:</view>
            <input type="text" placeholder=" 扫码 / 输入" v-model="matnr" :focus="matFocus" @input="findMat()">
            <input type="text" style="width: 350rpx;" placeholder=" 扫码 / 输入" v-model="matnr" :focus="matFocus" @input="findMat()">
            <uni-icons type="close" color="#c1c1c1" @click="clearMatnr"></uni-icons>
            <view class="item-right">
               <button></button>
               <text style="text-align: right;color: #409EFF;" @click="selectMat()">提取+</text>
               <uni-icons type="right" color="#c1c1c1"></uni-icons>
            </view>
         </view>
         <view class="item">
            <view class="code-decs" style="width: 25vw;">是否满板:</view>
            <radio-group @change="isFullPlt">
               <label>
                  <radio :checked="ck1" /><text>是</text>
               </label>
               <label>
                  <radio :checked="ck2" style="margin-left: 50rpx;"/><text>否</text>
               </label>
            </radio-group>
         </view>
      </view>
      <!-- ----------------------------------------------  输入框  ----------------------------------------------------------- -->
      <view class="mat-list-title">
         商品列表
      </view>
@@ -46,6 +77,12 @@
                     <uni-tag :text="item.batch" type="warning"></uni-tag>
                  </view>
               </view>
               <!-- <view class="list-left-item">
                  <view class="desc">重量:</view>
                  <view class="left-item">
                     <uni-tag :text="item.weight" type="warning"></uni-tag>
                  </view>
               </view> -->
               <view class="list-left-item">
                  <view class="desc">数量:</view>
                  <view class="left-item">{{item.anfme}}</view>
@@ -76,14 +113,18 @@
                        style="background-color: #f7f7f7;padding: 0;color: #d5d5d5;">
                  </view>
               </view>
               <!-- <view class="popup-item">
               <view class="popup-item">
                  <view class="popup-item-left">批号:</view>
                  <view class="popup-item-right"><input type="text" v-model="batch"></view>
               </view>
               <!-- <view class="popup-item">
                  <view class="popup-item-left">重量:</view>
                  <view class="popup-item-right"><input type="text" v-model="weight"></view>
               </view> -->
               <view class="popup-item">
                  <view class="popup-item-left">数量:</view>
                  <view class="popup-item-right" style="border: none;justify-content: center;">
                     <uni-number-box :value="count" :max="9999999" color="#747474" @change="changeValue" />
                     <uni-number-box :value="count" :step='0.01' :max="9999999" color="#747474" @change="changeValue" />
                  </view>
               </view>
               <view class="btn">
@@ -130,12 +171,15 @@
         return {
            baseUrl: '',
            token: '',
            storeId: 0,
            store: '',
            barcode: '',
            dataList: [],
            count: 0,
            rowNum: '',
            matnr: '',
            batch: '',
            weight: '',
            msgType1: 'success',
            msgType: 'success',
            messageText: '',
@@ -145,16 +189,45 @@
            matFocus: false,
            matData: '',
            removeNum: 0,
            ck1: false,
            ck2: true,
            fullPlt: 'N',
         }
      },
      onLoad() {
         this.dataList = uni.getStorageSync('pakinDataList')
         if (this.dataList === '') {
            this.dataList = []
         }
      },
      onShow() {
         this.baseUrl = uni.getStorageSync('baseUrl');
         this.token = uni.getStorageSync('token');
         this.storeId = uni.getStorageSync('store')
         if (this.storeId == 1) {
            this.store = '宁波仓'
         }
         if (this.storeId == 2) {
            this.store = '新昌仓'
         }
      },
      methods: {
         back() { uni.navigateBack({}) },
         // 是否满板
         isFullPlt() {
            var temp = this.ck1
            this.ck1 = this.ck2
            this.ck2 = temp
            if (this.ck1) {
               this.fullPlt = 'Y'
            } else {
               this.fullPlt = 'N'
            }
         },
         clearMatnr() {
            // this.matnr = ''
            this.focuss()
         },
         messageToggle(type) {
            this.msgType1 = type
            this.$refs.message.open()
@@ -165,11 +238,7 @@
            setTimeout(() => {
               var len = this.barcode.length
               if (len != 8) {
                  uni.showToast({
                     title: '托盘码有误请重试',
                     icon: "none",
                     position: 'top'
                  });
                  uni.showToast({ title: '托盘码有误请重试', icon: "none", position: 'top' });
                  this.barcodeFocuss()
                  return;
               }
@@ -187,7 +256,7 @@
         },
         // 商品光标清空重置
         focuss() {
            this.focus = false;
            this.matFocus = false;
            setTimeout(() => {
               this.matnr = '';
               this.matFocus = true;
@@ -226,23 +295,15 @@
                           },
                        },
                     });
                  } else if (res.code == 403) {
                     uni.showToast({
                        title: res.msg,
                        icon: "none",
                        position: 'top'
                     })
                  } else if (result.code == 403) {
                     uni.showToast({ title: result.msg, icon: "none", position: 'top' })
                     setTimeout(() => {
                        uni.reLaunch({
                           url: '../login/login'
                        });
                     }, 1000);
                  } else {
                     uni.showToast({
                        title: res.msg,
                        icon: "none",
                        position: 'top'
                     })
                     uni.showToast({ title: result.msg, icon: "none", position: 'top' })
                  }
               }
@@ -301,12 +362,14 @@
            if (add) {
               this.dataList.unshift(mat)
            }
            uni.setStorageSync('pakinDataList', this.dataList);
         },
         // 修改批号
         revise(item, i) {
            this.matnr = this.dataList[i].matnr
            this.count = this.dataList[i].anfme
            this.batch = this.dataList[i].batch
            this.weight = this.dataList[i].weight
            this.rowNum = i
            this.eject()
         },
@@ -324,9 +387,8 @@
         },
         // 确认移除
         removeConfirm() {
            this.messageText = "移除成功"
            this.messageToggle('success')
            this.dataList.splice(this.removeNum, 1)
            uni.showToast({ title: '移除成功', icon: "error", position: 'top' });
         },
         // 取消移除
         removeClose() {
@@ -335,9 +397,9 @@
         reviseConfirm() {
            this.dataList[this.rowNum].anfme = this.count
            this.dataList[this.rowNum].batch = this.batch
            this.dataList[this.rowNum].weight = this.weight
            this.matnr = ''
            this.messageText = "修改成功"
            this.messageToggle('success')
            uni.showToast({ title: '移除成功', icon: "success", position: 'top' });
            this.$refs.revise.close()
         },
         reviseClose() {
@@ -359,25 +421,24 @@
            uni.vibrateShort();
            let that = this;
            if (that.barcode === '') {
               this.messageText = "请扫描托盘条码"
               this.messageToggle('error')
               uni.showToast({ title: '请扫描托盘条码', icon: "error", position: 'top' });
               return;
            }
            if (that.dataList.length === 0) {
               this.messageText = "请添加商品列表"
               this.messageToggle('error')
               uni.showToast({ title: '请添加商品列表', icon: "error", position: 'top' });
               return;
            }
            for (var i = 0; i < that.dataList.length; i++) {
               if (that.dataList[i].anfme == 0 || that.dataList[i].anfme == '') {
                  this.messageText = that.dataList[i].matnr + '组托数量不能为0'
                  this.messageToggle('error')
                  uni.showToast({ title: that.dataList[i].matnr + '组托数量不能为0', icon: "error", position: 'top' });
                  return;
               }
            }
            uni.request({
               url: that.baseUrl + '/mobile/comb/auth',
               data: JSON.stringify({
                  owner: that.store,
                  fullPlt: that.fullPlt,
                  barcode: that.barcode,
                  combMats: that.dataList
               }),
@@ -391,17 +452,18 @@
                     that.resst();
                     that.messageText = "组托成功"
                     that.messageToggle('success')
                     const innerAudioContext = uni.createInnerAudioContext();
                     innerAudioContext.src = '/static/music/pakinOk.mp3';
                     innerAudioContext.play()
                     that.dataList = []
                     uni.setStorageSync('pakinDataList', that.dataList);
                  } else if (res.code == 403) {
                     that.messageText = res.msg
                     that.messageToggle('error')
                     uni.showToast({ title: res.msg, icon: "error", position: 'top' });
                     setTimeout(() => {
                        uni.reLaunch({
                           url: '../login/login'
                        });
                        uni.reLaunch({ url: '../login/login' });
                     }, 1000);
                  } else {
                     that.messageText = res.msg
                     that.messageToggle('error')
                     uni.showToast({ title: res.msg, icon: "error", position: 'top' });
                  }
               }
            });
@@ -435,10 +497,13 @@
<style>
   @import url('../../static/css/wms.css/wms.css');
   .list:first-child {
      margin-top: 320rpx;
   }
   .code {
      width: 100%;
      position: fixed;
      min-height: 200rpx;
      min-height: 210rpx;
      background-color: #FFF;
      z-index: 10;
   }
@@ -446,7 +511,7 @@
   .item {
      display: flex;
      align-items: center;
      height: 100rpx;
      height: 70rpx;
      margin-left: 20rpx;
      border-bottom: 1px solid #DCDFE6;
   }
@@ -482,6 +547,6 @@
      z-index: 9;
      /* border-top: 1px solid #DCDFE6; */
      text-align: center;
      box-shadow: 0px 0px 30px 0px rgba(0, 0, 0, 0.5);
      box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.2);
   }
</style>