pang.jiabao
2025-04-11 162b3abda98bf6c33d60e0846b54febade343274
pages/basics/stockQuery.vue
@@ -1,118 +1,268 @@
<template>
   <view>
      <view class="cu-form-group margin-top">
         <view class="title">库位</view>
         <input v-model="locNo" placeholder="库位编号" name="input" @input="findByLocNo()" focus></input>
      <!-- 搜索框 -->
      <view class="square-1">
         <view class="searchBox">
            <view class="searchIcon"><uni-icons type="search" size="20" color="#dadada"></uni-icons></view>
            <view class="searchArea">
               <input v-model="locNo" type="text" placeholder=" Номер места" @input="searchByLoc" placeholder-style="line-height:  85rpx;"></view>
            <view class="closeIcon"><uni-icons type="closeempty" size="20" color="#dadada" @click="removeLocNo"></uni-icons></view>
         </view>
      </view>
      <view class="cu-form-group margin-top">
         <view class="title">产品</view>
         <input v-model="matNo" placeholder="产品ID" name="input" @input="findByMatNo()"></input>
      <!-- 搜索框 -->
      <view class="square-1">
         <view class="searchBox">
            <view class="searchIcon"><uni-icons type="search" size="20" color="#dadada"></uni-icons></view>
            <view class="searchArea">
               <input v-model="matnr" type="text" placeholder=" По умолчанию" @input="searchByMatnr" placeholder-style="line-height:  85rpx;"></view>
            <view class="closeIcon"><uni-icons type="closeempty" size="20" color="#dadada" @click="removeMatnr"></uni-icons></view>
         </view>
      </view>
      <view class="margin-top">
         <uni-table border stripe emptyText="暂无更多数据">
            <uni-tr>
               <uni-th width="90">产品ID</uni-th>
               <uni-th width="90">产品名称</uni-th>
               <uni-th width="90">库位</uni-th>
               <uni-th width="70">数量</uni-th>
            </uni-tr>
            <uni-tr v-for="(item, index) in locDetlData" :key="index" @input="tabRender()">
               <uni-td>{{item.matNo}}</uni-td>
               <uni-td>{{item.matName}}</uni-td>
               <uni-td>{{item.locNo}}</uni-td>
               <uni-td>{{item.count}}</uni-td>
            </uni-tr>
         </uni-table>
      <!-- 列表头 -->
      <view class="square-1">
         <view class="square-title">
            <view class="title-sign"><view class="sign"></view></view>
            <view class="title-text"><text>商品列表</text></view>
         </view>
      </view>
      <view class="reset">
         <button class="cu-btn bg-grey pda-btn1" @click="reset">重 置</button>
      <!-- 商品列表 -->
      <!-- <checkbox-group @change="checkbox">
         <view v-for="(item,index) in matList" :key="index" class="data-list bg-false" :class="'bg-'+item.checked" >
            <view class="data-list-left">
               <view class="matnr"><text style="width: 400rpx;">编码:{{item.matnr}}</text></view>
               <view><text style="width: 400rpx;">品名:{{item.maktx}}</text></view>
               <view><text style="width: 400rpx;">批号:{{item.batch}}</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>
               <label><uni-icons type="trash" size="25" color="#a5a5a5" @click="remove(item,index)"></uni-icons></label>
            </view>
         </view>
      </checkbox-group> -->
      <checkbox-group @change="checkbox">
         <view v-for="(item,index) in matList" :key="index" class="data-list bg-false" :class="'bg-'+item.checked" >
            <label class="left-check-box">
               <checkbox :value="item.id+''" :checked="item.checked" style="display: block;" />
            </label>
            <view class="data-list-left">
               <view class="matnr"><text style="width: 700rpx;">Код товара:{{item.matnr}}</text></view>
               <view><text style="width: 700rpx;">Наименование товара:{{item.maktx}}</text></view>
               <view><text style="width: 700rpx;">Номер партии:{{item.batch}}</text></view>
               <view>
                  <text style="width: 700rpx;">Количество:{{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>
               <!-- list中删除键 -->
               <!-- <label><uni-icons type="trash" size="25" color="#a5a5a5" @click="remove(item,index)"></uni-icons></label> -->
            </view>
         </view>
      </checkbox-group>
      <!-- 无数据显示 -->
      <view class="square-none"  v-show="matList.length === 0">
         <view class="v-show">Нет дополнительных данных...</view>
      </view>
   </view>
</template>
<script>
   export default {
      data() {
      data () {
         return {
            locNo:'',
            matNo:'',
            locDetlData:[],
            commonUrl:null,
            matList: [{}],
            locNo: null,
            matnr: null
         }
      },
      mounted(){
      mounted() {
         const UIP = uni.getStorageSync('UIP');
         this.baseIP = UIP
         this.baseIP = UIP;
         const UPORT = uni.getStorageSync('UPORT');
         this.basePORT = UPORT
         const PROJ = uni.getStorageSync('UPROJ');
         this.baseUrl = PROJ
         this.getUrl()
      },
      methods: {
         reset:function() {
            let that = this;
            that.locNo = '';
            that.matNo = '';
            that.locDetlData = [];
         // 获取url
         getUrl() {
            this.commonUrl = this.baseHttp + this.baseIP + ':' +this.basePORT + "/" +this.baseUrl
         },
         // 根据库位号查找库存明细
         findByLocNo(){
            if(this.locNo.length === 0){
               return;
            }
            this.matNo = ''
            this.find(this.locNo,this.matNo)
         checkbox: function () {
         },
         // 根据产品号查找库存明细
         findByMatNo(){
            if(this.matNo.length === 0){
               return;
            }
            this.locNo = '',
            this.find(this.locNo,this.matNo)
         // 清空库位号搜索框
         removeLocNo() {
            this.locNo = null
         },
         // find
         find(){
         // 清空商品编码
         removeMatnr() {
            this.matnr = null
         },
         request() {
            let that = this
            uni.request({
               url: that.baseHttp + that.baseIP + that.baseUrl + "/mobile/locDetl/stockQuery",
               header:{
                  'content-type':'application/x-www-form-urlencoded',
                  'token':uni.getStorageSync('token')
               url:that.commonUrl + '/locDetl/list/auth',
               header:{'token':uni.getStorageSync('token')},
               data: {
                  curr: 1,
                  limit: 100,
                  loc_no: that.locNo,
                  matnr: that.matnr
               },
               data:{
                  locNo: that.locNo,
                  matNo: that.matNo,
               },
               method: 'POST',
               success(res) {
                  if(res.data.code === 200){
                     if(res.data.data != null){
                        that.locDetlData = res.data.data
                     } else if (res.data.code ===403){
               method:"GET",
               success(result) {
                  console.log(result)
                  let res = result.data
                  let records = res.data.records
                  if (res.code == 200) {
                     if (records) {
                        that.matList = records
                        console.log(that.matList)
                     } else {
                        uni.showToast({
                           title: "反选</text>",
                           position: 'top',
                           duration: 1000
                        });
                     }
                  } else if (res.code == 403) {
                     uni.showToast({title: res.msg, icon: "none", position: 'top'})
                     setTimeout(() => {
                        uni.reLaunch({
                           url: '../login/login'
                        });
                     }, 1000);
                  } else {
                     uni.showToast({title: res.msg, icon: "none",position: 'top'})
                  }
               }
            })
         },
      }
         // 根据库位号搜索
         searchByLoc() {
            let that = this
            that.request()
         },
         // 根据商品编码搜索
         searchByMatnr() {
            let that = this
            that.request()
         }
      },
   }
</script>
<style>
   /* .reset {
      position: absolute;
      width: 750upx;
      bottom: 280upx;
   } */
   .pda-btn1 {
      margin-left:260rpx;
      margin-right: auto;
      margin-top: 150rpx;
      width: 200rpx;
      height: 80rpx;
      font-size: 30upx;
      font-weight: bold;
   .bg-false {
      background-color: #FFFFFF;
   }
</style>
   .bg-true {
      background-color: #ebebeb;
   }
   .data-list {
      border-bottom: 1px solid #d8d8d8;
      height: 180rpx;
      margin: 15rpx;
      border-radius: 20rpx;
   }
   .data-list:first-child {
      margin-top: 20rpx;
   }
   .data-list:last-child {
      margin-bottom: 160rpx;
   }
   /* .data-list-left {
      display: inline-block;
      float: left;
      text-align: center;
      width: 100rpx;
      height: 180rpx;
      line-height: 180rpx;
   } */
   .left-check-box {
      display: inline-block;
      /* background-color: #1E9FFF; */
      float: left;
      height: 100%;
      width: 100rpx;
      text-align: center;
      line-height: 170rpx;
   }
   .data-list-left {
      /* background-color: #ffff7f; */
      display: inline-block;
      float: left;
      height: 180rpx;
      width: 500rpx;
      color: #676767;
   }
   .matnr {
      padding-top: 10rpx;
   }
   .data-list-right {
      /* background-color: #55ffff; */
      display: inline-block;
      float: right;
      width: 100rpx;
      height: 180rpx;
      line-height: 180rpx;
   }
   .data-list-right label {
      display: inline-block;
      float: left;
      width: 100rpx;
      height: 180rpx;
   }
   .revise-box {
      width: 500rpx;
      height: 500rpx;
   }
   .revise-box-top {
      width: 100%;
      height: 100rpx;
      background-color: #fff;
      padding: 10rpx;
   }
   .changeBox {
      width: 100%;
      height: 100rpx;
      line-height: 120rpx;
      text-align: center;
      background-color: #FFF;
      margin-top: 20rpx;
      border-bottom: 1px solid #e3e3e3;
   }
   .text-box {
      width: 100%;
      height: 100rpx;
      line-height: 120rpx;
      text-align: center;
      /* padding-left: 120rpx; */
      background-color: #FFF;
      margin-top: 20rpx;
      border-bottom: 1px solid #e3e3e3;
   }
   .changeBox .num-box {
      display:  inline-block;
      float: left;
   }
   .changeBox button {
      float: left;
   }
   .revise-box-buttom {
      position: absolute;
      width: 100%;
      height: 100rpx;
      line-height: 100rpx;
      background-color: #FFFFFF;
      bottom: 0;
      text-align: center;
   }
</style>