skyouc
3 天以前 a232dcf6d4a59c7c47e06b6619eb7566163f95b4
pages/listing/itemSelect.vue
New file
@@ -0,0 +1,218 @@
<template>
   <view>
      <!-- 搜索框 -->
      <view class="search-bar">
         <uni-search-bar v-model="condition" placeholder=" 输入批次/编码/单号" bgColor="#EEEEEE"  @confirm="search()"/>
      </view>
      <view>
         <view class="padding-lr margin-top-sm">
            <block v-for="(item, index) in matList" :key="index">
               <view class="cu-list det menu sm-border margin-bottom-sm " :class="[item.selected === true &&'act']" @click="selectedItem(index)">
                  <view class="cu-bar bg-white solid-bottom " >
                     <view class="action">
                        <view class="index">
                           {{index+1}}
                        </view>
                        <view class="text-blue">
                           编码:
                           {{`${item.matnrCode}`}}
                        </view>
                     </view>
                     <view class="action">
                        <text v-if="item.selected" class="cuIcon-check text-green" style="font-size: 24px;"></text>
                        <text v-else  class="cuIcon-close text-red" style="font-size: 24px;"></text>
                     </view>
                  </view>
                  <view class="cu-item">
                     <view class="content">
                        <text class="text-black">ASN:</text>
                     </view>
                     <view class="action">
                        <text class="text-grey ">{{item.asnCode}}</text>
                     </view>
                  </view>
                  <view class="cu-item">
                     <view class="content">
                        <text class="text-black">供应商批次:</text>
                     </view>
                     <view class="action">
                        <text class="text-grey ">{{item.splrBatch}}</text>
                     </view>
                  </view>
                  <view class="cu-item">
                     <view class="content">
                        <text class="text-black">质检状态:</text>
                     </view>
                     <view class="action">
                        <text class="text-grey ">{{item.isptResult$}}</text>
                     </view>
                  </view>
                  <view class="cu-item">
                     <view class="content">
                        <text class="text-black">库存单位: <text class="text-grey ">{{item.stockUnit}}</text></text>
                     </view>
                     <view class="content">
                        <text class="text-black">收货数量: <text class="text-grey ">{{item.anfme}}</text></text>
                     </view>
                     <view class="content">
                        <text class="text-black">已上架数量: <text
                              class="text-grey ">{{item.qty}}</text></text>
                     </view>
                  </view>
                  <view class="cu-item">
                     <view class="content">
                        <text class="text-black">可组盘数量: <text
                              class="text-grey ">{{item.anfme - item.workQty - item.qty}}</text></text>
                     </view>
                  </view>
               </view>
            </block>
         </view>
      </view>
      <view class="cu-bar btn-group foot">
         <button class="cu-btn bg-blue shadow-blur" :disabled="repeatClick" @click="back">确定</button>
      </view>
      <!-- <uni-load-more v-show="matList.length != 0" :status="status" :icon-size="16" :content-text="contentText" /> -->
   </view>
</template>
<script>
   import {
      request
   } from '../../common/request.js'
   export default {
      data() {
         return {
            matList: [],
            condition:'',
            baseUrl: '',
            token: '',
            itemStyle: {
                border: "1px solid #e54d42",
            },
            selectedList:[],
            repeatClick: false,
            matnrCode:'',
            asnCode:'',
         }
      },
      // onReachBottom() {
      //    this.status = 'more';
      //    this.showMat(this.tagIdNow);
      // },
      onLoad() {
         // 没啥用了
         let that = this
         // const eventChannel = this.$scope.eventChannel; // 兼容APP-NVUE
         const eventChannel = this.getOpenerEventChannel();
         // 监听acceptDataFromOpenerPage事件,获取上一页面通过eventChannel传送到当前页面的数据
         eventChannel.on('data', function(data) {
            that.getDet(data)
         })
      },
      onShow() {
         this.baseUrl = uni.getStorageSync('baseUrl');
         this.token = uni.getStorageSync('token');
      },
      methods: {
         search(){
            let req = {
               matnrCode: this.condition,
               asnCode: this.condition,
               code: this.condition,
               batch: this.condition
            }
            this.getDet(req);
         },
         back() {
            for (var i = 0; i < this.matList.length; i++) {
               if(this.matList[i].selected === true){
                  this.selectedList.push(this.matList[i])
               }
            }
            this.getOpenerEventChannel().emit('backData', {data: this.selectedList});
            uni.navigateBack({
            })
         },
         selectedItem(index){
            if(this.matList[index].selected === '' || this.matList[index].selected === null || this.matList[index].selected === undefined){
               this.matList[index].selected = true
            }else{
               this.matList[index].selected = !this.matList[index].selected
            }
         },
         async getDet(req) {
            let that = this;
            uni.showLoading({
               title:'加载中...'
            })
            const {
               code,
               data,
               msg
            } = await request('/asnOrderItem/trackCode', {
               matnrCode: req.matnrCode,
               asnCode: req.asnCode,
               code: req.code,
               batch: req.batch
            }, "post")
            if (code === 200) {
               for (var i = 0; i < data.length; i++) {
                  data[i].receiptQty =0;
                  data[i].selected = false;
               }
               this.matList = data
            } else {
               uni.showToast({
                  title: msg,
                  icon: "none",
                  position: 'top'
               })
            }
            uni.hideLoading();
         },
      }
   }
</script>
<style>
   @import url('../../static/css/wms.css/wms.css');
   .index {
      border: 1px solid #e54d42;
      color: #e54d42;
      border-radius: 50%;
      display: block;
      width: 50rpx;
      height: 50rpx;
      line-height: 48rpx;
      text-align: center;
      margin-right: 20rpx;
      font-size: 30rpx;
   }
   .text-blue {
      color: #0081ff !important;
   }
   .act {
      border: 1px solid #e54d42;
   }
   .item {
      position: relative;
      display: flex;
      min-height: 80upx;
      align-items: center;
   }
</style>