<template>
  <view class="promoter-list" ref="container">
    <view class="header">
      <view class="promoterHeader bg-color-red">
        <view class="headerCon acea-row row-between-wrapper">
          <view>
            <view class="name">推广人数</view>
            <view>
              <text class="num">{{ first + second||'0' }}</text>
              <text>人</text>
            </view>
          </view>
        </view>
      </view>
      <view class="nav acea-row row-around">
        <view class="item" :class="screen.grade == 0 ? 'on' : ''" @click="checkGrade(0)">一级({{ first||'0' }})</view>
        <view class="item" :class="screen.grade == 1 ? 'on' : ''" @click="checkGrade(1)">二级({{ second||'0' }})</view>
      </view>
      <view class="search acea-row row-between-wrapper">
        <form @submit.prevent="submitForm">
          <view class="input">
            <input placeholder="点击搜索会员名称" v-model="screen.keyword" />
            <text class="iconfont icon-guanbi" @click="screen.keyword=''"></text>
          </view>
        </form>
        <view class="iconfont icon-sousuo2"></view>
      </view>
    </view>
    <view class="list">
      <view class="sortNav acea-row row-middle" :class="fixedState === true ? 'on' : ''">
        <view class="sortItem" @click="sort('childCount')">
          团队排序
          <image :src="`${$VUE_APP_RESOURCES_URL}/images/sort1.png`" v-if="childCount == 1" />
          <image :src="`${$VUE_APP_RESOURCES_URL}/images/sort2.png`" v-if="childCount == 2" />
          <image :src="`${$VUE_APP_RESOURCES_URL}/images/sort3.png`" v-if="childCount == 3" />
        </view>
        <view class="sortItem" @click="sort('numberCount')">
          金额排序
          <image :src="`${$VUE_APP_RESOURCES_URL}/images/sort1.png`" v-if="numberCount == 1" />
          <image :src="`${$VUE_APP_RESOURCES_URL}/images/sort2.png`" v-if="numberCount == 2" />
          <image :src="`${$VUE_APP_RESOURCES_URL}/images/sort3.png`" v-if="numberCount == 3" />
        </view>
        <view class="sortItem" @click="sort('orderCount')">
          订单排序
          <image :src="`${$VUE_APP_RESOURCES_URL}/images/sort1.png`" v-if="orderCount == 1" />
          <image :src="`${$VUE_APP_RESOURCES_URL}/images/sort2.png`" v-if="orderCount == 2" />
          <image :src="`${$VUE_APP_RESOURCES_URL}/images/sort3.png`" v-if="orderCount == 3" />
        </view>
      </view>
      <view :class="fixedState === true ? 'sortList' : ''">
        <view class="item acea-row row-between-wrapper" v-for="(val, spreadListIndex) in spreadList"
          :key="spreadListIndex">
          <view class="picTxt acea-row row-between-wrapper">
            <view class="pictrue">
              <image :src="val.avatar" />
            </view>
            <view class="text">
              <view class="name line1">{{ val.nickname }}</view>
              <view>加入时间: {{ val.time }}</view>
            </view>
          </view>
          <view class="right">
            <view>
              <text class="font-color-red">{{ val.childCount }}</text>人
            </view>
            <view>{{ val.orderCount }} 单</view>
            <view>{{ val.numberCount ? val.numberCount : 0 }} 元</view>
          </view>
        </view>
      </view>
    </view>
    <Loading :loaded="loaded" :loading="loading"></Loading>
  </view>
</template>
<script>
  import {
    getSpreadUser
  } from "@/api/user";
  import Loading from "@/components/Loading";
  export default {
    name: "PromoterList",
    components: {
      Loading
    },
    props: {},
    data: function () {
      return {
        fixedState: false,
        screen: {
          page: 1,
          limit: 15,
          grade: 0,
          keyword: "",
          sort: ""
        },
        childCount: 2,
        numberCount: 2,
        orderCount: 2,
        loaded: false,
        loading: false,
        spreadList: [],
        loadTitle: "",
        first: "",
        second: ""
      };
    },
    mounted: function () {
      this.getSpreadUsers();
    },
    onReachBottom() {
      !this.loading && this.getSpreadUsers();
    },
    watch: {
      "screen.sort": function () {
        this.screen.page = 0;
        this.loaded = false;
        this.loading = false;
        this.spreadList = [];
        this.getSpreadUsers();
      }
    },
    methods: {
      handleScroll: function () {
        // var scrollTop =
        //   document.documentElement.scrollTop || document.body.scrollTop;
        // var offsetTop = document.querySelector(".header").clientHeight;
        // if (scrollTop >= offsetTop) {
        //   this.fixedState = true;
        // } else {
        //   this.fixedState = false;
        // }
      },
      submitForm: function () {
        this.screen.page = 0;
        this.loaded = false;
        this.loading = false;
        this.spreadList = [];
        this.getSpreadUsers();
      },
      getSpreadUsers: function () {
        let that = this,
          screen = that.screen;
        if (that.loaded || that.loading) return;
        that.loading = true;
        getSpreadUser(screen).then(
          res => {
            that.loading = false;
            that.spreadList.push.apply(that.spreadList, res.data.list);
            that.loaded = res.data.list.length < that.screen.limit; //判断所有数据是否加载完成；
            that.loadTitle = that.loaded ? "人家是有底线的" : "上拉加载更多";
            that.screen.page = that.screen.page + 1;
            that.first = res.data.total;
            that.second = res.data.totalLevel;
          },
          err => {
            uni.showToast({
              title: err.msg || err.response.data.msg || err.response.data.message,
              icon: "none",
              duration: 2000
            });
          },
          300
        );
      },
      checkGrade: function (val) {
        if (val == this.screen.grade) return;
        else {
          this.screen.page = 1;
          this.screen.grade = val;
          this.loading = false;
          this.loaded = false;
          this.spreadList = [];
          this.getSpreadUsers();
        }
      },
      sort: function (types) {
        let that = this;
        switch (types) {
          case "childCount":
            if (that.childCount == 2) {
              that.childCount = 1;
              that.orderCount = 2;
              that.numberCount = 2;
              that.screen.sort = "childCount DESC";
            } else if (that.childCount == 1) {
              that.childCount = 3;
              that.orderCount = 2;
              that.numberCount = 2;
              that.screen.sort = "childCount ASC";
            } else if (that.childCount == 3) {
              that.childCount = 2;
              that.orderCount = 2;
              that.numberCount = 2;
              that.screen.sort = "";
            }
            break;
          case "numberCount":
            if (that.numberCount == 2) {
              that.numberCount = 1;
              that.orderCount = 2;
              that.childCount = 2;
              that.screen.sort = "numberCount DESC";
            } else if (that.numberCount == 1) {
              that.numberCount = 3;
              that.orderCount = 2;
              that.childCount = 2;
              that.screen.sort = "numberCount ASC";
            } else if (that.numberCount == 3) {
              that.numberCount = 2;
              that.orderCount = 2;
              that.childCount = 2;
              that.screen.sort = "";
            }
            break;
          case "orderCount":
            if (that.orderCount == 2) {
              that.orderCount = 1;
              that.numberCount = 2;
              that.childCount = 2;
              that.screen.sort = "orderCount DESC";
            } else if (that.orderCount == 1) {
              that.orderCount = 3;
              that.numberCount = 2;
              that.childCount = 2;
              that.screen.sort = "orderCount ASC";
            } else if (that.orderCount == 3) {
              that.orderCount = 2;
              that.numberCount = 2;
              that.childCount = 2;
              that.screen.sort = "";
            }
            break;
          default:
            that.screen.sort = "";
        }
      }
    }
  };
</script>
