#
whycq
2022-02-23 8edcbd986b0fee1e7d94fcfd69e619d4ab58ded2
pages/basics/combPro.vue
@@ -3,7 +3,7 @@
      <form>
         <view class="cu-form-group margin-top">
            <view class="title">单号</view>
            <input v-model="billNo" placeholder="扫码 / 输入" name="input" autocomplete="off">
            <input v-model="billNo" placeholder="扫码 / 输入" name="input" autocomplete="off" focus @input="find()">
         </view>
         <view class="cu-form-group margin-top">
            <view class="title">托盘码</view>
@@ -11,25 +11,46 @@
         </view>
      </form>
      <view class="margin-top">
         <uni-table border stripe emptyText="暂无更多数据">
         <uni-table ref="table" border stripe emptyText="暂无更多数据" rowKey="">
            <uni-tr>
               <uni-th>物料编码</uni-th>
               <uni-th>生产单号</uni-th>
               <uni-th>数量</uni-th>
               <uni-th>物料名称</uni-th>
               <uni-th align="center" width="90">序号</uni-th>
               <uni-th align="center" width="90">数量</uni-th>
               <uni-th align="center" width="90">产品名称</uni-th>
               <uni-th align="center" width="90">产品ID</uni-th>
               <uni-th align="center" width="200">组托数量</uni-th>
            </uni-tr>
            <uni-tr>
               <uni-td>1121</uni-td>
               <uni-td>1121</uni-td>
               <uni-td>1121</uni-td>
               <uni-td>1121</uni-td>
            <uni-tr v-for="(item, index) in matData" :key="index">
               <uni-td align="center">{{item.seqNo}}</uni-td>
               <uni-td align="center">{{item.count}}</uni-td>
               <uni-td align="center">{{item.matName}}</uni-td>
               <uni-td align="center">{{item.matNo}}</uni-td>
               <uni-td align="center">
                  <button class="uni-button" size="mini" type="primary" @click="confirm(index,item)">修改</button>
                  <button class="uni-button" size="mini" type="warn" @click="remove(index,item)">删除</button>
               </uni-td>
            </uni-tr>
         </uni-table>
      </view>
      <view>
         <button class="cu-btn bg-yellow pda-btn">组托</button>
         <button class="cu-btn bg-grey pda-btn" @click="reset">重置</button>
         <button class="cu-btn bg-yellow pda-btn" @click="comb()">组 托</button>
         <button class="cu-btn bg-grey pda-btn" @click="reset">重 置</button>
      </view>
      <view>
         <!-- 提示信息弹窗 -->
         <uni-popup ref="message" type="message">
            <uni-popup-message :type="msgType" :message="messageText" :duration="2000"></uni-popup-message>
         </uni-popup>
      </view>
      <view>
         <!-- 输入框示例 -->
         <uni-popup ref="inputDialog" type="dialog">
            <uni-popup-dialog ref="inputClose" mode="input" title="组托数量"
               placeholder="请输入组托数量" @confirm="dialogInputConfirm">
                  <uni-number-box :min="minCount" :max="maxCount" v-model="value" />
            </uni-popup-dialog>
         </uni-popup>
      </view>
   </view>
</template>
@@ -40,19 +61,163 @@
         return {
            billNo:'',
            code:'',
            matData:[],
            type: '',
            msgType: '',
            messageText: '',
            minCount:1,
            maxCount:1,
            rowNum:'',
            value:'',
            couChange:true,
            baseIP:'',
         }
      },
      mounted(){
         const UIP = uni.getStorageSync('UIP');
         this.baseIP = UIP
      },
      methods: {
            reset:function() {
               let that =this;
               that.billNo = '';
               that.code = '';
               this.billNo = '';
               this.code = '';
            },
            messageToggle(type) {
               this.msgType = type
               this.messageText = '提取失败'
               this.$refs.message.open()
            },
            
            // 根据通知单号查询物料详情
            find(){
               let billNo = this.billNo
               let that = this
               if(this.billNo.length === 0){
                  return
               }
               if(billNo.indexOf('=')>-1){
                  billNo = billNo.split(",")[0].split("=")[1];
               }
               if(billNo.length===0){
                  return
               }
               this.matData = []
               uni.request({
                  url: that.baseHttp + that.baseIP + that.baseUrl + "/mobile/bill/query/auth",
                  header: {
                     'content-type':'application/x-www-form-urlencoded',
                     'token':uni.getStorageSync('token')},
                  data: {
                      billNo: billNo
                  },
                  method: 'POST',
                  success(res){
                     if(res.data.code === 200){
                        if(res.data.data != null){
                           that.addTableData(res.data.data)
                        }else if(res.data.code === 403){
                           uni.navigateBack({
                               delta: 1
                           })
                        }else {
                           this.messageToggle('error')
                           this.messageText = res.data.msg
                        }
                     }
                  }
               })
            },
            addTableData(data){
               for(var i=0;i<data.length;i++){
                  var toPush = true;
                  for(var j=0;j<this.matData.length;j++){
                     if(data[i].matNo ===this.matData[j].matNo ){
                        this.matData[j].count = Number(this.matData[j].count) + Number(data[i].count);
                        toPush = false;
                     }
                  }
                  if(toPush) {
                     this.matData.push(data[i]);
                  }
               }
            },
            // 修改数量
            confirm(index,item){
               this.couChange=false
               this.$refs.inputDialog.open()
               this.maxCount = item.count
               this.rowNum = index
               this.value = this.maxCount
            },
            // 修改数量弹窗
            dialogInputConfirm() {
               this.matData[this.rowNum].count = this.value
               this.messageToggle('success')
               this.messageText = '修改成功'
            },
            // 删除
            remove(index,item){
               this.matData.splice(index,1)
               this.messageToggle('success')
               this.messageText = '删除成功'
            },
            comb(){
               let that = this
               let barcode = that.code
               let billNo = this.billNo
               if(billNo.length === 0){
                  that.messageToggle('error')
                  that.messageText = '入库单号为空'
                  return;
               }
               if(barcode.length === 0){
                  that.messageToggle('error')
                  that.messageText = '请输入托盘码'
                  return;
               }
               if (barcode.length !== 8) {
                   that.messageToggle('error')
                   that.messageText = '托盘码必须为8位'
                   return;
               }
               if(that.couChange){
                  that.messageToggle('error')
                  that.messageText = '请先确认入库数量'
                  return;
               }
               uni.request({
                  url: that.baseHttp + that.baseIP + that.baseUrl + "/mobile/comb/auth",
                  header: {'token':uni.getStorageSync('token')},
                  data:{
                     barcode:barcode,
                     combMats:that.matData,
                     billNo: billNo,
                  },
                  method:'POST',
                  success(res) {
                     if(res.data.code === 200){
                        that.reset()
                        that.matData = []
                        that.messageToggle('success')
                        that.messageText = '组托成功'
                     } else if (res.data.code === 403) {
                        uni.navigateBack({
                            delta: 1
                        })
                     } else {
                        this.messageToggle('error')
                        this.messageText = res.data.msg
                     }
                  }
               })
            },
      },
      onShow() {
         // const query = uni.createSelectorQuery()
         // console.log(prototype.placeholder)
      }
   }
</script>