#
whycq
2022-11-10 b4416d1e1c0c292875820a3a510a1bc3488cb1f7
pages/basics/demo.vue
@@ -1,36 +1,100 @@
<template>
   <view>
      <scroll-view>
         <view>
            <checkbox-group @change="checkbox">
               <label v-for="(item,index) in data" :key="index" class="demo-list bg-false" :class="'bg-'+item.checked" >
                  <view class="demo-list-left">
                     <checkbox :value="item.id+''" :checked="item.checked" style="display: block;" />
                  </view>
                  <view class="demo-list-right">
                     <view><text style="font-weight: bold;">序号:{{index+1}}</text><text>订单 | </text>{{item.orderNo}}</view>
                     <view><text style="font-size: 15rpx;">商品编码:</text>{{item.matnr}}</view>
                     <view><text style="font-size: 15rpx;">应入数量:</text><view class="text-num">{{item.anfme}}</view><text>商品名称:</text>{{item.maktx}}</view>
                     <view><text>已入数量:</text><view class="text-num">{{item.inQty}}</view><text>订单状态:</text>{{item.state$}}</view>
                  </view>
               </label>
            </checkbox-group>
      <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>
      </scroll-view>
      <view class="foot flex justify-around">
         <label>
            <checkbox :checked="check" @click="allChecked()">{{checkText}}</checkbox>
         </label>
         <label>
            <text  @click="reChecked()">反选</text>
         </label>
         <label for="">
            <button class="cu-btn bg-yellow lg" @click="shangjia()">上架</button>
         </label>
         <label for="">
            <button class="cu-btn bg-yellow lg">撤销上架</button>
         </label>
         <view class="square-content">
            <view class="content-input">
               <input type="text" v-model="yyds" placeholder="扫码 / 输入" @input="find" :focus="focus">
               <uni-icons type="closeempty" size="20" color="#dadada"></uni-icons>
            </view>
         </view>
      </view>
      <checkbox-group >
         <view v-for="(item,index) in staNoList" :key="index" class="data-list " >
            <view class="data-list-left">
               <view class="matnr">{{item}}</view>
            </view>
         </view>
      </checkbox-group>
      <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-btn">
               <input type="text">
               <uni-icons type="closeempty" size="20" color="#dadada"></uni-icons>
            </view>
            <view class="content-btn">
               <button class="cu-btn bg-blue pda-btn">提取</button>
            </view>
         </view>
      </view>
      <view class="square-3">
         <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-combox">
               <uni-combox  emptyTips="暂无数据" :candidates="staNoList" v-model="staNo" placeholder="站台号"></uni-combox>
            </view>
         </view>
         <view class="square-content">
            <view class="content-input-combox">
               <input type="text">
               <uni-icons type="closeempty" size="20" color="#dadada"></uni-icons>
            </view>
         </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">
         <view class="v-show">暂无更多数据...</view>
      </view>
      <!-- 商品列表 -->
      <view>
         <view></view>
      </view>
      <!-- 表单 -->
      <view class="square-form">
         <view class="form-title">
            <text>结束时间</text>
         </view>
         <view class="form-input">
            <input type="text" placeholder="请输入...">
         </view>
      </view>
      <!-- 表单必填 -->
      <view class="square-form">
         <view class="form-title">
            <text>结束时间</text>
         </view>
         <view class="form-input">
            <input type="text" placeholder="请输入...">
         </view>
      </view>
      <!-- 搜索框 -->
      <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 type="text" placeholder=" 请输入"></view>
            <view class="closeIcon"><uni-icons type="closeempty" size="20" color="#dadada"></uni-icons></view>
         </view>
      </view>
   </view>
</template>
@@ -39,166 +103,36 @@
   export default {
      data() {
         return {
            data: [],
            check:false,
            checkText:'全选',
            checkedData:[],
            staNoList:[],
            staNo:'',
            yyds:'',
            focus:''
         }
      },
      mounted() {
         const UIP = uni.getStorageSync('UIP');
         this.baseIP = UIP;
         const UPORT = uni.getStorageSync('UPORT');
         this.basePORT = UPORT;
         this.render()
      onLoad() {
         // #ifdef APP
         setInterval(()=>{
            uni.hideKeyboard()
         },20)
         // #endif
      },
      methods: {
         // 表格加载
         render(param) {
            let that = this;
            if(param) {
               that.needData['order_no'] = param;
               that.getData();
            } else {
               that.getData();
            }
         },
         getData() {
            let that = this
            uni.request({
               url: that.baseHttp + that.baseIP + ':' +that.basePORT + that.baseUrl + "/receiveDetl/list/auth",
               header:{'token':uni.getStorageSync('token')},
               data: that.needData,
               success(res) {
                  var res = res.data
                  if (res.code === 200) {
                     that.data = res.data.records
                  }
               }
            })
         },
         checkbox: function (e) {
            var items = this.data,
               values = e.detail.value;
            for (var i = 0, lenI = items.length; i < lenI; ++i) {
               const item = items[i]
               item.id = item.id + ''
               if(values.indexOf(item.id) >= 0){
                  this.$set(item,'checked',true)
               }else{
                  this.$set(item,'checked',false)
               }
            }
            if (values.length == items.length) {
               this.check = true
               this.checkText = "取消全选"
            } else {
               this.check = false
               this.checkText = "全选"
            }
         },
         reChecked() { // 反选
            var checkArr = []
            for (var i = 0; i < this.data.length;i++) {
               if (this.data[i].checked == true) {
                  this.$set(this.data[i],'checked',false)
               }else{
                  this.$set(this.data[i],'checked',true)
               }
               if (this.data[i].checked == true) {
                  checkArr.push(this.data[i].checked)
               }
            }
            if (checkArr.length == this.data.length) {
               this.check = true
               this.checkText = "取消全选"
            } else {
               this.check = false
               this.checkText = "全选"
            }
         },
         allChecked(e){ // 全选
            if (this.check == true) {
               for (var i = 0; i < this.data.length;i++) {
                  this.$set(this.data[i],'checked',false)
               }
               this.check = false
               this.checkText = "全选"
            } else {
               for (var i = 0; i < this.data.length;i++) {
                  this.$set(this.data[i],'checked',true)
               }
               this.check = true
               this.checkText = "取消全选"
            }
      methods:{
         find(){
            this.staNoList.push(this.yyds);
            
         },
         shangjia() {
            this.checkedData = []
            for (var i = 0; i < this.data.length; i++) {
               if (this.data[i].checked == true) {
                  this.checkedData.push(this.data[i])
               }
            }
            console.log(this.checkedData)
            this.focus = false;
            setTimeout(()=>{
               this.yyds ='';
               this.focus = true;
               console.log(this.yyds ,'1')
            }, 50);
         }
      }
   }
</script>
<style>
   .bg-false {
      background-color: #FFFFFF;
   }
   .bg-true {
      background-color: #ebebeb;
   }
   .demo-list {
      border-bottom: 1px solid #d8d8d8;
      height: 150rpx;
   }
   .demo-list:last-child {
      margin-bottom: 99rpx;
   }
   label {
      display: block;
   }
   .demo-list-left {
      /* background-color: #007AFF; */
      display: inline-block;
      float: left;
      text-align: center;
      width: 100rpx;
      height: 150rpx;
      line-height: 150rpx;
   }
   .demo-list-right {
      /* background-color: #55ffff; */
      display: inline-block;
      float: left;
      height: 150rpx;
   }
   .demo-list-right text {
      display: inline-block;
   }
   .text-num {
      display: inline-block;
      width: 90rpx;
   }
   .foot {
      width: 100%;
      height: 100rpx;
      line-height: 100rpx;
      background-color: #ffffff;
      position: fixed;
      bottom: 0;
      border-top: 1rpx solid #d8d8d8;
   }
   checkbox {
      /* transform:scale(0.7) */
   }
   
</style>