#
whycq
2024-03-18 6c9cbdf482ce1330704dc635c510ec51a1115a9f
pages/basics/outPakin.vue
@@ -8,8 +8,8 @@
            </view>
            <view class="square-content">
               <view class="content-input">
                  <input v-model="barcode" type="text" placeholder="扫码 / 输入" maxlength="8"
                  :focus="barcodeFocus" @focus="focuss">
                  <input readonly="value" v-model="barcode" type="text" placeholder="扫码 / 输入" maxlength="8"
                  :focus="barcodeFocus" @input="nextInput">
                  <uni-icons type="closeempty" size="20" color="#dadada" @click="removeBarcode()"></uni-icons>
               </view>
            </view>
@@ -21,10 +21,11 @@
            </view>
            <view class="square-content">
               <view class="content-input">
                  <input v-model="matnr" type="text" placeholder="扫码 / 输入" @input="findMat()"
                  :focus="focus" @focus="focuss" >
                  <input v-model="matnrId" type="text" placeholder="扫码 / 输入" @input="findMat()"
                  :focus="focus"@focus="empty()">
                   <!-- :focus="focus" @blur="clear "> -->
                  <!-- @focus="focuss" -->
                  <uni-icons type="closeempty" size="20" color="#dadada" @click="removeMatnr()"></uni-icons>
                  <uni-icons type="closeempty" size="20" color="#dadada" @click="foucss()"></uni-icons>
               </view>
            </view>
         </view>
@@ -37,14 +38,14 @@
         <view class="square-none"  v-show="matList.length === 0">
            <view class="v-show">暂无更多数据...</view>
         </view>
         <checkbox-group @change="checkbox">
         <checkbox-group >
            <view v-for="(item,index) in matList" :key="index" class="data-list bg-false" :class="'bg-'+item.checked" >
               <view class="data-list-left">
                  <text>No:{{listLen-index}}</text>
                  <view class="matnr">No:{{listLen-index}}</view>
                  <view class="matnr">{{item.matnr}}-{{item.batch}}</view>
               </view>
               <view class="data-list-right">
                  <uni-icons type="trash" size="25" color="#a5a5a5" @click="remove(item,index)"></uni-icons>
                  <uni-icons type="trash" size="20" color="#a5a5a5" @click="remove(item,index)"></uni-icons>
               </view>
            </view>
         </checkbox-group>
@@ -56,6 +57,12 @@
         <view>
            <button class="cu-btn lg pakin-btn bg-blue" @click="comb()">组托</button>
         </view>
      </view>
      <view>
         <!-- 提示信息弹窗 -->
         <uni-popup ref="message" type="message">
            <uni-popup-message :type="msgType" :message="messageText" :duration="2000"></uni-popup-message>
         </uni-popup>
      </view>
   </view>
</template>
@@ -71,10 +78,13 @@
            type: 'center',
            searchBox: 'hide',
            pick:'hide',
            matnr:'',
            matnrId:'',
            // matList:[{matnr:'1101842-10000',batch:'22047515999'}],
            matList:[],
            result: '',
            listLen:0
            listLen:0,
            msgType: 'success',
            messageText: '这是一条成功提示',
         }
      },
      mounted(){
@@ -83,42 +93,72 @@
         const UPORT = uni.getStorageSync('UPORT');
         this.basePORT = UPORT
      },
      methods: {
         getListLength() {
            this.listLen = this.matList.length
         },
         focuss() {
      onLoad() {
         // #ifdef APP
         setInterval(()=>{
            uni.hideKeyboard()
         },20)
         // #endif
      },
      methods: {
         nextInput() {
            if (this.barcode.length == 8) {
               this.foucss()
            }
         },
         empty() {
            return this.inputValue='';
         },
         barcodeFocuss() {
            // #ifdef APP
            let that = this;
            that.barcodeFocus = false;
            setTimeout(()=>{
               that.matnrId = '';
               that.barcodeFocus = true;
            }, 100);
            // #endif
         },
         foucss() {
            // #ifdef APP
            let that = this;
            that.focus = false;
            setTimeout(()=>{
               that.matnrId = '';
               that.focus = true;
            }, 100);
            // #endif
         },
         clear() {
            this.matnrId = ''
         },
         messageToggle(type) {
            this.msgType = type
            this.messageText = `这是一条${type}消息提示`
            this.$refs.message.open()
         },
         resst() {
            this.matList = []
            this.barcode = ''
            this.matnr = ''
            uni.vibrateShort();
            this.matnrId = '';
            this.matList = [];
            this.barcode = '';
            this.barcodeFocuss();
         },
         removeBarcode() {
            this.barcode = ''
            uni.vibrateShort();
            this.barcodeFocus = false;
            this.$nextTick(function() {
               this.barcodeFocus = true;
            });
         },
         removeMatnr() {
            this.matnr = ''
            uni.vibrateShort();
            this.focus = false;
            this.$nextTick(function() {
               this.focus = true;
            });
         },
         remove(item,index) {
            this.matnrId = ''
            this.matList.splice(index,1)
            this.listLen = this.matList.length
            uni.vibrateShort();
            this.messageToggle('success')
            this.messageText = '删除成功'
         },
         comb() {
            uni.vibrateShort();
            let that = this;
            if (that.barcode === '') {
               uni.showToast({title: '请扫描托盘条码', icon: "none", position: 'top'});
@@ -148,6 +188,7 @@
                        position: 'bottom',
                        duration: 1000
                     });
                     that.resst();
                  } else if (res.code == 403) {
                     uni.showToast({title: res.msg, icon: "none", position: 'top'})
                     setTimeout(() => {
@@ -161,75 +202,70 @@
               }
            });
         },
         selectMat() {
            let that = this
            uni.vibrateShort();
            uni.showLoading();
            uni.navigateTo({
               url: "matSelect",
               events: {
                   // 为指定事件添加一个监听器,获取被打开页面传送到当前页面的数据
                   acceptDataFromOpenedPage: function(data) {
                     that.matnr = data.data
                     that.findMat(that.matnr)
                   },
                 },
                 success: function(res) {
                   // 通过eventChannel向被打开页面传送数据
                   res.eventChannel.emit('acceptDataFromOpenerPage', {baseIP:that.baseIP, basePORT:that.basePORT })
                 }
            });
            that.matnr = ''
         },
         findMat() {
            let that = this
            let str = that.matnr.split('-')
            that.matnr = str[0]+'-'+str[1]
            if (that.matnrId.length > 25){
               that.messageToggle('warn');
               that.messageText = '商品编码超长,请重试';
               that.foucss();
               return;
            }
            let str = that.matnrId.split('-')
            let matnr = str[0] + '-' + str[1]
            for (let k = 0; k < that.matList.length;k++) {
               if (that.matList[k].matnr != matnr) {
                  that.messageToggle('warn');
                  that.messageText = '商品种类不一致,请重试!';
                  that.foucss();
                  return;
               }
            }
            uni.showLoading();
            uni.request({
                url: that.baseHttp + that.baseIP + ':' +that.basePORT + that.baseUrl + '/mat/auth',
                data: {
                  matnr:that.matnr
                  matnr:matnr
                },
                header: {
                  'token':uni.getStorageSync('token')
                },
               success(result) {
                  uni.vibrateShort();
                  uni.hideLoading();
                  // uni.vibrateShort();
                  let res = result.data
                  if (res.code === 200 && res.data) {
                     that.matnr = ''
                     let add = true;
                     if(res.data) {
                        let mat = res.data;
                        mat['batch'] = str[2];
                        mat['anfme'] = 1
                        for(let i = 0;i < that.matList.length;i++) {
                           if(that.matList[i].batch == str[2]) {
                              add = false;
                              break;
                           }
                     let mat = res.data;
                     mat['batch'] = str[2];
                     mat['anfme'] = 1
                     for(let i = 0;i < that.matList.length;i++) {
                        if(that.matList[i].batch == str[2]) {
                           that.messageToggle('warn');
                           that.messageText = '重复扫描';
                           that.foucss();
                           add = false;
                        }
                     }
                     if(add) {
                        that.messageToggle('success');
                        that.messageText = '检索成功';
                        that.matList.unshift(res.data)
                     }
                     that.focus = false;
                     that.$nextTick(function() {
                        that.focus = true;
                     });
                     uni.hideKeyboard();
                  that.listLen = that.matList.length
                        that.foucss();
                     }
                     that.listLen = that.matList.length;
                  } else if (res.code == 403) {
                     that.messageToggle('warn')
                     that.messageToggle('error')
                     that.messageText = res.msg
                     setTimeout(() => {
                        uni.reLaunch({
                           url: '../login/login'
                        });
                     }, 1000);
                     uni.hideLoading();
                  } else {
                     that.messageToggle('warn')
                     that.messageToggle('error')
                     that.messageText = res.msg
                     uni.hideLoading();
                     // uni.showToast({title: res.msg, icon: "none",position: 'top'})
                  }
               }
@@ -240,44 +276,22 @@
         change(e) {
            console.log('当前模式:' + e.type + ',状态:' + e.show);
         },
         toggle(type) {
            this.type = type
            // open 方法传入参数 等同在 uni-popup 组件上绑定 type属性
            this.$refs.goodsSearch.open(type)
         },
         checkbox: function (e) {
            var items = this.data,
               values = e.detail.value;
            for (var i = 0, lenI = items.length; i < lenI; ++i) {
               const item = items[i]
               item.id = item.id + ''
               if(values.indexOf(item.id) >= 0){
                  this.$set(item,'checked',true)
               }else{
                  this.$set(item,'checked',false)
               }
            }
            if (values.length == items.length) {
               this.check = true
               this.checkText = "取消全选"
            } else {
               this.check = false
               this.checkText = "全选"
            }
            uni.vibrateShort();
         },
      }
   }
</script>
<style>
   /* @import "../../colorui/main.css";
   @import "../../colorui/icon.css"; */
   /* 
   1101842-10000-22047515999
   1101842-10000-220475159999
   1101842-10000-22047518494
   1101842-10000-22047518532
   1101842-10000-22047515990
   1101842-12345-22047515990
   1101842-10000-22047515997
   1101842-10000-22047518515
   1101842-10000-22047515778
@@ -388,7 +402,7 @@
   }
   .data-list {
      border-bottom: 1px solid #d8d8d8;
      height: 90rpx;
      height: 130rpx;
      margin: 15rpx;
      border-radius: 20rpx;
   }
@@ -410,17 +424,21 @@
      display: inline-block;
      float: left;
      margin-left: 6%;
      height: 90rpx;
      height: 130rpx;
      /* line-height: 100rpx; */
      color: #676767;
   }
   .matnr {
      padding-top: 10rpx;
      font-size: 14px;
      font-weight: 700;
      /* padding-top: 15rpx; */
      padding-top: 15rpx;
   }
   .data-list-right {
      display: inline-block;
      float: right;
      height: 90rpx;
      line-height: 90rpx;
      height: 130rpx;
      line-height: 130rpx;
      margin-right: 10%;
   }
</style>