#
zjj
2024-08-21 54fce333aae7d6f596616a6eb5e65c27c28a9994
pages/basics/pakin.vue
@@ -9,12 +9,38 @@
            <view class="square-content">
               <view class="content-input">
                  <input v-model="barcode" type="text" placeholder="扫码 / 输入" 
                  :focus="barcodeFocus" @confirm="barcodeInput()" placeholder-style="line-height:  85rpx;">
                  :focus="barcodeFocus" @input="checkedBarcode()" placeholder-style="line-height:  85rpx;">
                  <uni-icons type="closeempty" size="20" color="#dadada" @click="removeBarcode()"></uni-icons>
               </view>
            </view>
         </view>
         <view class="square-1">
            <view class="square-title">
               <view class="title-sign"><view class="sign"></view></view>
               <view class="title-text"><text>是否冻结</text></view>
               <radio-group @change="isFrozen">
                  <label>
                     <radio :checked="ck1" style="margin-left: 100rpx;"/><text>是</text>
                  </label>
                  <label>
                     <radio :checked="ck2" style="margin-left: 50rpx;"/><text>否</text>
                  </label>
               </radio-group>
               <!-- <radio :value="yes" style="margin-left: 100rpx;">是</radio>
               <radio :value="no" style="margin-left: 50rpx;">否</radio> -->
            </view>
         </view>
         
         <view class="square-1">
            <view class="square-title" style="display: flex;align-items: center;">
               <view class="title-sign"><view class="sign"></view></view>
               <view class="title-text" style="flex: 1;"><text>商品类型</text></view>
               <view style="">
                  <uni-combox style="width: 150px;margin-right: 10px;" :candidates="matTypes" placeholder="请选择商品类型"
                  v-model="matType"></uni-combox>
               </view>
            </view>
         </view>
         
         <view class="square-2">
            <view class="square-title">
@@ -52,12 +78,21 @@
                  <!-- <view>
                     <checkbox :value="item.id+''" :checked="item.checked" style="display: block;" />
                  </view> -->
                  <view class="matnr"><text style="width: 400rpx;">编码:{{item.matnr}}</text></view>
                  <table>
                     <tr><td>编号:</td><td>{{item.matnr}}</td></tr>
                  </table>
                  <view><text style="width: 400rpx;">品名:{{item.maktx}}</text></view>
                  <view><text style="width: 400rpx;">规格:{{item.specs}}</text></view>
                  <view><text style="width: 400rpx;">入库区域:{{item.matType$}}</text></view>
                  <view><text style="width: 400rpx;">批号:{{item.batch}}</text></view>
                  <view><text style="width: 400rpx;">客户信息:{{item.owner}}</text></view>
                  <view>
                     <text style="width: 400rpx;">数量:{{item.anfme}}</text>
                     <text style="width: 400rpx;">备注:{{item.memo}}</text>
                     <text style="width: 400rpx;margin-left: 100rpx">数量:{{item.anfme}}</text>
                  </view>
                  <!-- <view>
                     <text style="width: 400rpx;">数量:{{item.anfme}}</text>
                  </view> -->
               </view>
               <view class="data-list-right">
                  <label><uni-icons type="compose" size="20" color="#a5a5a5" @click="revise(item,index)"></uni-icons></label>
@@ -84,22 +119,29 @@
            <button class="cu-btn bg-blue " @click="comb()">组托</button>
         </label>
      </view>
      <!-- 弹窗 -->
      <!-- 修改数量 -->
      <uni-popup ref="revise" background-color="#fff">
      <uni-popup ref="revise" >
         <view class="revise-box ">
            <view class="revise-box-top">
               <view class="color-block-blue"></view>
               <text class="title">修改批号/数量</text>
               <text class="title">修改</text>
            </view>
            <view class="" style="position: relative;left: 50px;margin-bottom: 20px;">
               <text style="display: inline-block;float: left;width: 50px;">批号:</text>
               <input type="text" style="width: 100px;border-bottom: 1px solid #9e9e9e;" v-model="batch">
            </view>
            <view class="" style="position: relative;left: 50px;margin-bottom: 20px;">
               <text style="display: inline-block;float: left;width: 50px;">备注:</text>
               <input type="text" style="width: 100px;border-bottom: 1px solid #9e9e9e;" v-model="memo">
            </view>
            <view class="" style="position: relative;left: 50px;margin-bottom: 20px;">
               <text style="display: inline-block;float: left;width: 50px;">客户:</text>
               <input type="text" style="width: 100px;border-bottom: 1px solid #9e9e9e;" v-model="cstmr">
            </view>
            <view class="changeBox">
               <view class="num-box">
                  <text style="display: inline-block;float: left;width: 50px;">批号:</text>
                  <text style="display: inline-block;float: left;width: 50px;">数量:</text>
                  <uni-number-box :value="count" :max="9999999" color="#747474"  @change="changeValue"/>
               </view> 
            </view>
@@ -115,6 +157,7 @@
<script>
   import permision from "@/common/permission.js"
import loginVue from "../login/login.vue";
   export default {
      data() {
         return {
@@ -136,7 +179,16 @@
            check:false,
            checkText:'全选',
            checkedData:[],
            batch:''
            batch:'',
            memo: '',
            cstmr: '',
            ck1: false,
            ck2: true,
            frozen: 0,
            owner: '',
            matType: '',
            matTypes: ['单品物料','高频混合物料','低频混合物料'],
            matTypeId: 0,
         }
      },
      onShow() {
@@ -158,6 +210,40 @@
         // 获取url
         getUrl() {
            this.commonUrl = this.baseHttp + this.baseIP + ':' +this.basePORT + "/" +this.baseUrl
         },
         // 检查条码
         checkedBarcode() {
            let that = this
            uni.request({
               url: that.commonUrl + '/mobile/barcode/auth',
               data: {
                  barcode: that.barcode,
               },
               header: {
                  'token':uni.getStorageSync('token')
               },
               success(result) {
                  var res = result.data
                  if (res.code === 500) {
                     that.barcodeFocuss()
                     uni.showToast({title: res.msg, icon: "none", position: 'top'});
                  } else if(res.code === 200) {
                     that.barcodeInput()
                  }
               }
            })
         },
         // 冻结
         isFrozen() {
            var temp = this.ck1
            this.ck1 = this.ck2
            this.ck2 = temp
            this.frozen = this.ck1
            if (this.frozen == true) {
               this.frozen = 1
            } else {
               this.frozen = 0
            }
         },
         // barcode input 事件
         barcodeInput() {
@@ -196,6 +282,8 @@
            this.matList = []
            this.barcode = ''
            this.matnr = ''
            this.matType = ''
            this.matTypeId = 0
            this.barcodeFocuss()
            uni.vibrateShort();
         },
@@ -237,11 +325,22 @@
                  return;
               }
            }
            // 客户信息中文转数字
            for (let k in that.matList) {
               for (let t in that.owner) {
                  if (that.matList[k].owner == that.owner[t].owner) {
                     that.matList[k].owner = that.owner[t].id
                  }
               }
            }
            this.getMatTypeIn(this.matType)
            uni.showLoading();
            uni.request({
                url: that.commonUrl + '/mobile/comb/auth',
                data: JSON.stringify({
                  frozen: that.frozen,
                  barcode: that.barcode,
                  matTypeIn: that.matTypeId,
                  combMats: that.matList
               }),
               method: 'POST',
@@ -269,10 +368,32 @@
                        });
                     }, 1000);
                  } else {
                     for (let k in that.matList) {
                        for (let t in that.owner) {
                           if (that.matList[k].owner == that.owner[t].id) {
                              that.matList[k].owner = that.owner[t].owner
                           }
                        }
                     }
                     uni.showToast({title: res.msg, icon: "none",position: 'top'})
                  }
               }
            });
         },
         getMatTypeIn(type) {
            switch (type) {
               case '单品物料':
                  this.matTypeId = 1
                  break;
               case '高频混合物料':
                  this.matTypeId = 2
                  break;
               case '低频混合物料':
                  this.matTypeId = 3
                  break;
               default:
                  this.matType = 0
            }
         },
         selectMat() {
            let that = this
@@ -310,18 +431,22 @@
                  if (res.code === 200 && res.data) {
                     that.matData = res.data
                     that.matnr = ''
                     that.matData['batch'] = ''
                     uni.navigateTo({
                        url: "matQuery",
                        events: {
                            // 为指定事件添加一个监听器,获取被打开页面传送到当前页面的数据
                            matList: function(data) {
                              that.checkMat(data.data)
                              // that.matList.push(data.data)
                           },
                           owner: function(data) {
                              that.owner = data.data
                           },
                        },
                        success: function(res) {
                           // 通过eventChannel向被打开页面传送数据
                           res.eventChannel.emit('matData', { data: that.matData })
                           res.eventChannel.emit('url', { data: that.commonUrl })
                        },
                     });
                  } else if (res.code == 403) {
@@ -347,6 +472,8 @@
         checkMat(mat) {
            var len = this.matList.length
            var add = true
            var date = new Date()
            var today = date.getFullYear() + '/' + (date.getMonth()+1) + '/' + date.getDate()
            for (var i = 0; i < len; i++) {
               if (mat.matnr == this.matList[i].matnr) {
                  this.matList[i].anfme += mat.anfme 
@@ -355,11 +482,13 @@
               }
            }
            if (add) {
               if(mat.batch === '' || mat.batch === null) {
                  // mat.batch = today
               }
               this.matList.unshift(mat)
            }
         },
         change(e) {
            console.log('当前模式:' + e.type + ',状态:' + e.show);
         },
         toggle(type) {
            this.type = type
@@ -389,13 +518,9 @@
         },
         revise(item,index) {
            this.count = this.matList[index].anfme
            // var maxCount = this.matList[index].maxCount
            // if (maxCount == undefined ) {
            //    this.matList[index]["maxCount"] = item.enableQty
            // }
            // this.enableQty = item.enableQty
            // this.count = this.minCount
            // this.maxCount = item.maxCount
            this.batch = this.matList[index].batch
            this.memo = this.matList[index].memo
            this.cstmr = this.matList[index].cstmr
            this.rowNum = index
            this.eject()
         },
@@ -410,6 +535,8 @@
         confirm() {
            this.matList[this.rowNum].anfme = this.count
            this.matList[this.rowNum].batch = this.batch
            this.matList[this.rowNum].memo = this.memo
            this.matList[this.rowNum].cstmr = this.cstmr
            this.$refs.revise.close()
            this.$forceUpdate() // 强制刷新
         },
@@ -466,8 +593,10 @@
   .revise-box {
      position: relative;
      width: 500rpx;
      height: 400rpx;
      height: 570rpx;
      border-radius: 25px;
      background-color: #fff;
      border-radius: 20rpx;
   }
   .revise-box-top {
      width: 400rpx;
@@ -580,15 +709,16 @@
   }
   .data-list {
      border-bottom: 1px solid #d8d8d8;
      height: 180rpx;
      min-height: 320rpx;
      margin: 15rpx;
      border-radius: 20rpx;
      display: flex;
   }
   .data-list:first-child {
      margin-top: 20rpx;
   }
   .data-list:last-child {
      margin-bottom: 120rpx;
      margin-bottom: 180rpx;
   }
   /* .data-list-left {
      display: inline-block;
@@ -599,11 +729,12 @@
      line-height: 180rpx;
   } */
   .data-list-left {
      display: inline-block;
      float: left;
      margin-left: 6%;
      height: 180rpx;
      min-height: 320rpx;
      color: #676767;
      width: 500rpx;
      color: #676767;
      max-width: 450rpx;
   }
   .matnr {
      padding-top: 10rpx;
@@ -611,8 +742,8 @@
   .data-list-right {
      display: inline-block;
      float: right;
      height: 180rpx;
      line-height: 180rpx;
      min-height: 290rpx;
      line-height: 290rpx;
   }
   /* display: inline-block;
   float: right;