#
whycq
2024-04-15 f995772f300ffe07b0b567ed36ddf33edd893c2f
pages/phyz/checkLocDetl/locDetlList.vue
@@ -1,24 +1,51 @@
<template>
   <view>
      <view>当前库位号:{{locNo}}</view>
      <view>当前货架码:{{barcode}}</view>
      <view class="list list-font-color" :class="locDetl.color" v-for="(locDetl,index) in dataList" :key="index">
         <view class="list-left">
            <view>销售订单号:{{locDetl.threeCode}}</view>
            <view>主订单号:{{locDetl.orderNo}}</view>
            <view>商品编码:{{locDetl.matnr}}</view>
            <view>商品名称:{{locDetl.maktx}}</view>
            <view>库存:{{locDetl.anfme}}</view>
            <view>调整库存为:{{locDetl.barcode}}</view>
            <view>库存:{{locDetl.count}}</view>
         </view>
         <view class="list-right" @click="goToLocDetl(locDetl)">
         <view class="list-right" @click="chageDetl(index)">
            <uni-icons type="right" size="25"  color="#fff"></uni-icons>
         </view>
      </view>
      <view style="height: 100rpx;display: flex;align-items: center;justify-content: center;" @click="add()">
         <uni-icons type="folder-add" size="25"  color="#000" style="padding-right: 20rpx;"></uni-icons> 添加物料
      </view>
      <!-- 弹窗 -->
      <view>
         <uni-popup ref="chageDetl" type="dialog">
            <view class="popup">
               <!-- 标题 -->
               <view class="title">商品信息</view>
               <view class="popup-item">
                  <view>订单号</view>
                  <view style="margin-left: 20rpx;border-bottom: 1px solid #d8d8d8;"> <input type="text"> </view>
               </view>
               <view class="popup-item">
                  <view>销售单号</view>
                  <view style="margin-left: 20rpx;border-bottom: 1px solid #d8d8d8;"> <input type="text"> </view>
               </view>
               <view class="popup-item">
                  <uni-number-box :value="count" :step='1' :max="9999999" color="#747474" @change="changeValue" />
               </view>
               <view class="btn">
                  <view class="btn-left" @click="remove()">移除</view>
                  <view class="btn-right" @click="changeCount()">修改</view>
               </view>
            </view>
         </uni-popup>
      </view>
      <!-- 底部操作按钮 -->
      <view class="buttom">
         <button size="mini" type="primary" @click="agvStart('warn')">添加物料</button>
         <button size="mini" type="primary" @click="adjust('warn')">调整库存</button>
      </view>
   </view>
</template>
@@ -29,8 +56,11 @@
         return {
            baseUrl: '',
            token: '',
            dataList: []
            dataList: [],
            count: '',
            index: 0,
            locNo: '',
            barcode: ''
         }
      },
      onShow() {
@@ -42,6 +72,11 @@
         // 监听acceptDataFromOpenerPage事件,获取上一页面通过eventChannel传送到当前页面的数据
         eventChannel.on('item', function(data) {
            console.log(data);
            _this.locNo = data.item.locNo
            _this.barcode = data.item.barcode
            for (let k of data.item.data) {
               k['count'] = k.anfme
            }
            _this.dataList = data.item.data
         })
      },
@@ -73,6 +108,7 @@
               },
               events: {
                  matList: function(data) {
                     data.data.barcode = _this.barcode
                     _this.checkMat(data.data)
                  },
               },
@@ -108,6 +144,44 @@
            if (add) {
               this.dataList.unshift(mat)
            }
            this.$forceUpdate() // 强制刷新
         },
         chageDetl(index) {
            this.index = index
            this.count = this.dataList[index].anfme
            this.$refs.chageDetl.open()
         },
         // 修改数量
         changeCount() {
            if (this.count > this.orderCarList[this.index].anfme) {
               uni.showToast({ title: '数量不合法!', icon: "none", position: 'top' })
               return
            }
            this.orderCarList[this.index].pakinQty = this.count
            this.$forceUpdate() // 强制刷新
            this.$refs.chageDetl.close()
         },
         // 移除物料
         remove() {
            this.orderCarList.splice(this.index, 1)
            this.$refs.chageDetl.close()
         },
         adjust() {
            let _this = this
            let param = {
               locNo: _this.locNo,
               list: _this.dataList
            }
            uni.request({
               url: `${_this.baseUrl}/agv/locDdetl/adjust/start`,
               header: {'token': uni.getStorageSync('token')},
               data: param,
               method: 'POST',
               success(res) {
                  res = res.data
                  console.log(res);
               }
            })
         }
      }
   }
@@ -115,4 +189,68 @@
<style>
   @import url('../../../static/css/common/order.css');
   .popup {
      width: 80vw;
      min-height: 100rpx;
      background-color: #FFF;
      border-radius: 25rpx;
      position: relative;
   }
   .title {
      height: 100rpx;
      line-height: 100rpx;
      width: 100%;
      color: #606266;
      text-align: center;
      font-size: 16px;
   }
   .popup-item {
      height: 80rpx;
      line-height: 80rpx;
      display: flex;
      align-items: center;
      justify-content: center;
   }
   .popup-item-left {
      width: 16vw;
      padding-right: 20rpx;
      text-align: right;
      color: #606266;
   }
   .popup-item-right {
      display: flex;
      align-items: center;
      width: 50vw;
      height: 50rpx;
      padding: 2px 5px;
      border: 1px solid #E4E7ED;
      border-radius: 5rpx;
   }
   .popup-item-right input{
      color: #606266;
   }
   .btn {
      display: flex;
      height: 90rpx;
      margin-top: 20rpx;
      border-top: 1px solid #DCDFE6;
      justify-content: center;
      align-items: center;
   }
   .btn-left {
      display: flex;
      flex: 1;
      height: 100%;
      justify-content: center;
      align-items: center;
      color: #e2231a;
      border-right: 1px solid #DCDFE6;
   }
   .btn-right {
      display: flex;
      flex: 1;
      justify-content: center;
      align-items: center;
      color: #409EFF;
   }
</style>