gx
queenwuli
2021-01-25 c4246ca910f28014efaace64ebf92f47a673a9cf
hive-app/pages/member/selectCustomer.vue
@@ -19,8 +19,11 @@
         </view>
      </view>
      <no-record :isShow="!list.length"></no-record>
      <view v-if="list.length">
         <uni-load-more :status="loadStatus" color="#a5abaf"></uni-load-more>
      </view>
      <view class="footer">
         <text>已选:{{selectItems.length?selectItems.length:0}}人</text>
         <text>已选:{{selectIds?selectIds.split(',').length:0}}人</text>
         <button class="blue-btn btn mr-0" @click="confirm">确定</button>
      </view>
   </view>
@@ -28,8 +31,10 @@
<script>
   import searchBar from '../../components/searchBar/index.vue';
   import uniLoadMore from '@/components/uni-load-more/uni-load-more.vue';
   export default {
      components:{
         uniLoadMore,
         searchBar
      },
      data() {
@@ -40,6 +45,8 @@
            selectIds: '',
            selectItems: [],
            multiSelect: false, //单选/多选,默认多选
            loadStatus: 'more',
            pageNum: 1
         };
      },
      onLoad(options) {
@@ -54,28 +61,47 @@
      onShow() {
         this.loadMemberList()
      },
      onReachBottom(){
         this.loadMemberList()
      },
      methods:{
         reloadData(){
            this.list = [];
            this.pageNum = 1;
            this.loadStatus = 'more';
            this.loadMemberList();
         },
         caculateBgcolor(index){
            return this.colors[index%8];
         },
         search(val){
            this.queryKey = val;
            this.loadMemberList();
            this.reloadData();
         },
         loadMemberList(){
            uni.showLoading({
               mask: true,
               title: '加载中'
            });
            if(this.loadStatus!=='more'){
               return;
            }
            let selectedArr = this.selectIds?this.selectIds.split(','):[];
            this.$httpUtils.request('/api/vip/findVipInfoList', {
               pageNum: this.pageNum,
               pageSize: 15,
               queryKey: this.queryKey
            }, 'POST').then((res) => {
               if(res.status == 200){
                  this.list = res.rows.map((item) => {
                  let result = res.rows;
                  if(result.length < 15){
                     this.loadStatus = 'noMore';
                  } else {
                     this.pageNum ++ ;
                     this.loadStatus = 'more';
                  }
                  result = result.map((item) => {
                     let index = this.selectItems.findIndex((op) => {
                        return op.id == item.id
                     });
                     if(this.selectIds && this.selectIds.indexOf(item.id) > -1){
                     if(this.selectIds && selectedArr.includes(item.id.toString())){
                        if(index == -1){
                           this.selectItems.push(item);
                        }
@@ -83,12 +109,8 @@
                     }
                     return Object.assign(item, {isCheck: false})
                  });
                  this.list = this.list.concat(result);
               }
               this.$nextTick(function(){
                  uni.hideLoading()
               })
            }).catch(() => {
               uni.hideLoading()
            })
         },
         checkOnchange(item){
@@ -97,6 +119,10 @@
            }else{
               this.singChange(item)
            }
            let selectedArr = this.selectItems.map((item) => {
               return item.id;
            })
            this.selectIds = selectedArr.length?selectedArr.join(','):'';
         },
         singChange(item){
            if(!item.isCheck){
@@ -109,6 +135,7 @@
               item.isCheck = false;
               this.selectItems = [];
            }
         },
         multiChange(item){
            let index = this.selectItems.findIndex((op) => {