<template>
  <h-view id="startList">
    <h-header :proportion="[5,1,1]" class="bar-custom">
      <div slot="left" class="h-header-btn" @click="$routeGo()">
        <img src="@/assets/userBind/arrow.png">
        <span>延期申请</span>
      </div>
    </h-header>
    <Tab @getTabNum="getTabNum"/>
    <div class="search has-header">
      <input v-model="keyWord" placeholder="请输入合同号/承租人名称">
    </div>
    <scroll
      ref="scroll"
      :updateData="[lists]"
      :pullUp="true"
      class="has-footer"
      @pullingUp="getList"
    >
      <div v-for="(item,index) in showList" :key="index" class="item" @click="changePage(item)">
        <div class="left">
          <span>
            <img src="@/assets/contractStart/icon.png">
          </span>
        </div>
        <div class="right">
          <div class="right-top">
            <span>合同编号</span>
            <span>{{ item.project_number }}</span>
          </div>
          <div class="right-bottom">
            <ul>
              <li>
                <span>承租人</span>
                <span>{{ item.bp_name }}</span>
              </li>
              <li>
                <span>产品名称</span>
                <span>{{ item.division_n }}</span>
              </li>
              <li>
                <span>合同金额</span>
                <span class="number">{{ item.total_price|currency }}</span>
              </li>
            </ul>
          </div>
        </div>
      </div>
    </scroll> 
  </h-view>
</template>
<script>
import Tab from '@/pages/contractStart/tab'

export default {
  components: {
    Tab,
  },
  data () {
    return {
      tabNum: 0,
      keyWord: '',
      status: '',
      pagenumNew: 1,
      pagenumApproved: 1,
      lists: [],
      showList: [],
      undo: [],
      done: [],
    }
  },
  beforeRouteEnter (to, from, next) {
    next(vm => {
      vm.pagenumNew = 1
      vm.pagenumApproved = 1
      vm.lists = []
    })
  },
  watch: {
    tabNum: {
      handler (newVal, oldVal) {
        if (newVal === 0) {
          this.status = 'NEW'
          this.showList = this.undo
        } else if (newVal === 1) {
          this.status = 'APPROVED'
          this.showList = this.done
        }
        this.getList()
      },
      immediate: true,
    },
    keyWord (newVal, oldVal) {
      this.search()
    },
  },
  created () {},
  methods: {
    search () {
      let vm = this
      let randomString = Math.floor(Math.random() * 21)
      let url =
          process.env.basePath +
          'car_apply_list_query' +
          '&index' +
          `'${randomString}'`
      let param = {
        bp_id: JSON.parse(window.localStorage.now_user_bp_bind_id).bp_id,
        car_start_status: vm.status,
        searchInput: vm.keyWord,
      }
      vm.$post(url, param).then(function (res) {
        if (res.result === 'S') {
          vm.lists = res.lists
          vm.selectShowList()
        } else {
          hlsPopup.showLongCenter(res.message)
        }
      })
    },
    selectShowList () {
      let vm = this
      vm.undo = []
      vm.done = []
      vm.undo = vm.lists.filter(i => {
        return (
          i.car_start_status === 'REJECTED' || i.car_start_status === 'NEW'
        )
      })
      vm.done = vm.lists.filter(i => {
        return i.car_start_status === 'APPROVED'
      })
      if (vm.tabNum === 0) {
        this.showList = this.undo
      } else {
        this.showList = this.done
      }
    },
    getTabNum (i) {
      this.tabNum = i
      this.$refs.scroll.scrollToTop()
    },
    changePage (e) {
      this.$router.push({
        name: 'overTimeApplyDetail',
        query: {
          project_id: e.project_id,
          car_start_status: e.car_start_status,
          project_number: e.project_number,
        },
      })
    },
    getList () {
      let vm = this
      let randomString = Math.floor(Math.random() * 21)
      let url =
          process.env.basePath +
          'car_apply_list_query' +
          '&index' +
          `'${randomString}'`
      let param = {
        // user_phone: window.localStorage.getItem('user_phone'),
        bp_id: JSON.parse(window.localStorage.now_user_bp_bind_id).bp_id,
        pagesize: 10,
        pagenum: vm.status === 'APPROVED' ? vm.pagenumApproved : vm.pagenumNew,
        searchInput: vm.keyWord,
        car_start_status: vm.status,
      }
      hlsPopup.showLoading('请稍候')
      vm.$post(url, param).then(function (res) {
        vm.hlsPopup.hideLoading()
        if (res.result === 'S') {
          let returnData = []
          returnData = res.lists
          if (returnData.length === 0) {
            vm.$refs.scroll.update(true)
          } else if (returnData.length > 0 && returnData.length < 10) {
            vum.forEach(returnData, function (data, index, array) {
              vm.lists.push(array[index])
            })
            vm.status === 'APPROVED' ? vm.pagenumApproved++ : vm.pagenumNew++
            vm.$refs.scroll.update(true)
          } else if (returnData.length === 10) {
            vum.forEach(returnData, function (data, index, array) {
              vm.lists.push(array[index])
            })
            vm.status === 'APPROVED' ? vm.pagenumApproved++ : vm.pagenumNew++
            vm.$refs.scroll.update(false)
          }
          vm.selectShowList()
        } else {
          hlsPopup.showLongCenter(res.message)
        }
      })
    },
  },
}
</script>
<style lang="less">
  #startList {
    .search {
      background-color: #fff;
      padding: 8px 12px;
      position: absolute;
      width: 100%;
      height: 1.02rem;
      z-index: 100;
      margin-top: 52px;
      margin-bottom: 8px;

      input {
        background: url("../../assets/contractStart/search1.png") 320px no-repeat;
        background-size: 16px 16px;
        background-color: rgba(239, 239, 239, 0.55);
        padding-left: 12px;
        height: 36px;
        line-height: 36px;
        border-radius: 4px;
        width: 100%;
        font-family: PingFangSC-Regular;
        font-size: 14px;
        color: #888c8f;
      }

      input::placeholder {
        font-family: PingFangSC-Regular;
        font-size: 14px;
        color: #888c8f;
        letter-spacing: 0;
      }

      input:focus {
        background: url("../../assets/contractStart/search2.png") 320px no-repeat;
        background-size: 16px 16px;
        background-color: rgba(239, 239, 239, 0.55);
        border: 2px solid #bcc6ff;
      }
    }

    .item {
      width: 359px;
      height: 148px;
      background-color: #fff;
      border-radius: 2px;
      margin: 0 auto;
      margin-top: 9px;

      .left {
        width: 15%;
        height: 100%;
        float: left;

        span {
          display: block;
          width: 30px;
          height: 30px;
          background-color: #e8e9ed;
          border-radius: 8px;
          display: flex;
          align-items: center;
          justify-content: center;
          margin-left: 10px;
          margin-top: 8px;

          img {
            width: 11px;
            height: 14px;
          }
        }
      }

      .right {
        height: 100%;
        width: 85%;
        float: right;

        .right-top {
          width: 285px;
          height: 45px;
          font-family: PingFangSC-Semibold;
          font-size: 15px;
          color: #4b4a4b;
          letter-spacing: 0;
          line-height: 45px;
          border-bottom: 1px solid #f3f3f7;

          span:last-child {
            float: right;
          }
        }

        .right-bottom {
          width: 285px;
          margin-top: 10px;

          .number {
            font-family: Verdana-Bold;
            font-size: 14px;
            color: #4b4a4b;
            letter-spacing: 0;
            font-weight: bold;
          }

          li {
            font-family: PingFangSC-Regular;
            font-size: 13px;
            color: #4b4a4b;
            letter-spacing: 0;
            //height: 30px;
            width: 100%;
            display: flex;
            justify-content: space-between;
            margin: 0.16rem 0;
            //align-items: center;
            span {
              line-height: 18px;

              &:last-child {
                text-align: right;
              }

              &:first-child {
                width: 70px;
              }
            }

            /*span{
              margin-top: 5px;
            }
            span:last-child {
              float: right;
            }*/
          }
        }
      }
    }

    .add {
      color: #fff;
      background-color: #0041c4;
    }

    .content {
      position: absolute;
      top: 0;
    }

    .scrollContent {
      padding-top: 2.92rem;
      padding-bottom: 20px;
    }

    .tab-style {
      width: 100%;
      position: absolute;
    }
  }

  .platform-ios {
    #startList {
      .scrollContent {
        padding-top: 3.32rem;
      }
    }
  }

  @media (device-width: 375px) and (device-height: 812px) and (-webkit-min-device-pixel-ratio: 3) {
    .platform-ios {
      #startList {
        .scrollContent {
          padding-top: 3.72rem;
        }
      }
    }
  }

  // iPhoneXR适配
  @media (device-width: 414px) and (device-height: 896px) {
    .platform-ios {
      #startList {
        .scrollContent {
          padding-top: 3.72rem;
        }

        .search {
          input {
            background: url("../../assets/contractStart/search1.png") 320px no-repeat;
            background-size: 16px 16px;
            background-color: rgba(239, 239, 239, 0.55);
            padding: 8px 12px;
            border-radius: 4px;
            width: 100%;
            font-family: PingFangSC-Regular;
            font-size: 14px;
            color: #888c8f;
          }
        }
      }
    }
  }
</style>
