#
whycq
2024-03-18 6c9cbdf482ce1330704dc635c510ec51a1115a9f
pages/basics/orderOut.vue
@@ -1,8 +1,363 @@
<template>
    <view>
      <view class="square-2">
         <view class="square-title">
            <view class="title-sign"><view class="sign"></view></view>
            <view class="title-text"><text>出库单号</text></view>
         </view>
         <view class="square-content">
            <view class="content-input">
               <input type="text" v-model="billNo" placeholder="扫码 / 输入" @input="searchBillNo" placeholder-style="line-height:  85rpx;">
               <uni-icons type="closeempty" size="20" color="#dadada" @click="removeBillNo"></uni-icons>
            </view>
         </view>
      </view>
      <view class="square-2">
         <view class="square-title">
            <view class="title-sign"><view class="sign"></view></view>
            <view class="title-text"><text>出库口</text></view>
         </view>
            <view class="content-combox">
               <uni-combox  emptyTips="暂无数据"
                  :candidates="sites" v-model="siteId"  @click="staNoSelect()" placeholder="请选择出库站点">
               </uni-combox>
            </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>
         </view>
      </view>
      <view class="square-none" v-show="matList.length === 0">
         <view class="v-show">暂无更多数据...</view>
      </view>
      <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 style="margin-top: 10px;">
            <uni-table ref="table" border stripe emptyText="暂无更多数据">
                <uni-tr>
                    <uni-th align="center" width="50">出库数量</uni-th>
                    <uni-th align="center" width="70">产品ID</uni-th>
                    <uni-th align="center" width="80">产品代号</uni-th>
                    <uni-th align="center" width="70">产品名称</uni-th>
                </uni-tr>
                <uni-tr v-for="(item, index) in matList" :key="index">
                    <uni-td align="center">{{item.qty}}</uni-td>
                    <uni-td align="center">{{item.matNo}}</uni-td>
                    <uni-td align="center">{{item.size}}</uni-td>
                    <uni-td align="center">{{item.matName}}</uni-td>
                </uni-tr>
            </uni-table>
        </view> -->
        <!-- 底部按钮 -->
        <view class="footer flex justify-around">
           <!-- 底部全选 反选按钮 -->
           <!-- <label class="label-btn" style="width: 170rpx;">
              <checkbox :checked="check" @click="allChecked()">{{checkText}}</checkbox>
           </label>
           <label class="label-btn" style="width: 100rpx;">
              <text  @click="reChecked()">反选</text>
           </label> -->
           <label class="label-btn" style="width: 150rpx;">
              <button class="cu-btn" @click="resst()">重置</button>
           </label>
           <label class="label-btn">
              <button class="cu-btn bg-blue " @click="outbound()">启动出库</button>
           </label>
        </view>
    </view>
</template>
<script>
    export default {
        data() {
            return {
            commonUrl:null,
                billNo: '',
                matList: [],
                sites: [],
                siteId: ''
            }
        },
        mounted(){
         const UIP = uni.getStorageSync('UIP');
         this.baseIP = UIP;
         const UPORT = uni.getStorageSync('UPORT');
         this.basePORT = UPORT
         const PROJ = uni.getStorageSync('UPROJ');
         this.baseUrl = PROJ
         this.getUrl()
         this.staNoSelect();
        },
        methods: {
         // 获取url
         getUrl() {
            this.commonUrl = this.baseHttp + this.baseIP + ':' +this.basePORT + "/" +this.baseUrl
         },
         // 清空单号搜索框
         removeBillNo() {
            this.billNo = null
         },
            searchBillNo() {
                let that = this;
                uni.request({
                    url: that.commonUrl + "/orderDetl/list/auth",
                    header: {
                  'content-type':"application/x-www-form-urlencoded",
                  'token':uni.getStorageSync('token')
                  },
                    data: {
                  curr:1,
                  limit:10,
                  // typeCode:1,
                  order_no: that.billNo
                    },
               method:"POST",
                    success(result) {
                        let res = result.data
                        if (res.code === 200 ) {
                     if (res.data) {
                        that.matList = res.data.records
                        that.staNoSelect()
                     } else {
                        that.matList = []
                     }
                        } 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'})
                        }
                    },
                })
            },
            staNoSelect() {
                let that = this;
                uni.request({
                    url: that.commonUrl + "/available/take/site",
                    header: {'token':uni.getStorageSync('token')},
                    success(result) {
                  console.log(result)
                        let res = result.data
                        if (res.code === 200 ) {
                            that.sites = [];
                            for (var i = 0; i < res.data.length; i++) {
                                that.sites.push(res.data[i].desc)
                            }
                        } 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'})
                        }
                    }
                })
            },
            outbound() {
                let that = this
                if (that.matList.length === 0) {
               uni.showToast({title: "请选择出库口", icon: "none",position: 'top'})
                } else {
                    if (that.siteId == '') {
                        uni.showToast({title: "请选择出库口", icon: "none",position: 'top'})
                        return;
                    }
                };
                var staNo = that.siteId.substring(0,3)
                var locDetls = [];
                that.matList.forEach(function(elem) {
                    locDetls.push({billNo:elem.billNo,seqNo:elem.seqNo, matNo: elem.matNo, count: elem.qty,});
                });
                let param = {
                    outSite: staNo,
                    locDetls: locDetls
                }
            console.log(param)
            // return
                uni.request({
                    url: that.commonUrl + "/mobile/order/out/pakout/auth",
                    header: {
                        'token':uni.getStorageSync('token')},
                    // data: JSON.stringify(param),
               data: {
                     staNo: staNo,
                     orderNo: that.billNo
                  },
                    method:"POST",
                    success(result) {
                  console.log(result)
                        if (result.data.code === 200) {
                            uni.showToast({title: result.data.msg, icon: "none",position: 'top'})
                            that.resst()
                        } else {
                            uni.showToast({title: result.data.msg, icon: "none",position: 'top'})
                        }
                    }
                })
            },
            resst() {
                this.billNo = '';
                this.matList = [];
                this.siteId = '';
            }
        }
    }
</script>
<style>
    .pda-btn1 {
        margin-left:260rpx;
        margin-right: auto;
        margin-top: 150rpx;
        width: 200rpx;
        height: 80rpx;
        font-size: 30upx;
        font-weight: bold;
    }
    .combox {
        width: 200px;
        padding: 12px;
    }
   .bg-false {
      background-color: #FFFFFF;
   }
   .bg-true {
      background-color: #ebebeb;
   }
   .data-list {
      border-bottom: 1px solid #d8d8d8;
      height: 180rpx;
      width: 94%;
      margin: 15rpx auto 15rpx auto;
      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;
      text-indent: 20rpx;
   }
   .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>