<template>
  <div>
    <div class="mobile-header mobile-center-header">
      <a @click="goLastPage"><i class="iconfont icon-fanhui"></i></a>
      <p>应付对账
        <!--<span @click="addApCheck"><i class="icon-sousuo iconfont"></i>新增对账单</span>-->
      </p>
      <p class="en-name"><img :src="`/images/mobile/center/${user.data.enterprise && user.data.enterprise.uu ? 'en' : 'self'}.png`" alt="">{{currentEnName}}</p>
    </div>
    <div class="btobapCheck-wrapper">
      <div class="order-tab">
        <div class="order-tab-wrapper clearfix">
          <div class="fl active tab">B2B</div>
          <nuxt-link class="fl tab" to="/mobile/center/user/payCenter" tag="div" >
            商城
          </nuxt-link>
        </div>
      </div>
      <div class="search-content mi-search-content">
        <input type="text" v-model="filterParams.keyword" @keyup.13="onFilter" placeholder="单据编号/客户名称/物料名称">
        <span @click="onFilter"><i class="iconfont icon-sousuo"></i></span>
      </div>
      <div class="btobapCheck-wrapper-scroll" id="btobapCheck-wrapper-scroll">
        <div class="filter-wrapper">
          <base-filter
            v-for="filterOption in filterOptions"
            :key="filterOption.selectOption"
            :selectItems="filterOption.selectItems"
            :defaultVal="filterOption.defaultVal"
            :selectOption="filterOption.selectOption"
            @selectAction="onSelectAction"
            @valueAction="onValueAction"
            :title="filterOption.title">
          </base-filter>
        </div>
        <div v-if="resourceList.content && resourceList.content.length > 0">
          <div class="invoice-btob-list" v-for="item in resourceList.content" :key="item.id">
            <div class="invoice-btob-wrapper-top">
              日期：<span  style="margin-right: 0.3rem">{{item.apDate | time}}</span>
            </div>
            <div class="invoice-btob-wrapper-middle">
              <div class="invoice-btob-wrapper-middle-title">{{item.custName}}</div>
              <div><span>单据编号：</span><a>{{item.code}}</a></div>
            </div>
            <div class="invoice-btob-wrapper-content">
              <div><span>对账期间：</span>{{item.beginDate | time}} - {{item.endDate | time}}</div>
              <div><span>对账总额：</span>{{item.checkAmount | toFixedNum}}</div>
              <div><span>明细条目：</span>{{item.items.length}}条</div>
              <div><span>商品总数：</span>{{item.getTotalProd}}</div>
              <div><span>对账结果：</span><span v-text="item.checkStatus"></span></div>
            </div>
          </div>
        </div>
        <empty-status
          v-else
          :text="'暂无对账信息'"
          :showLink="false"
        ></empty-status>
        <pull-up :fixId="'btobapCheck-wrapper-scroll'" :allPage="allPage" :page="filterParams.page" @pullUpAction="onPullUpAction"></pull-up>
      </div>
    </div>
    <modal-wrapper :title="'新增对账单'" :showModal="showModal" @closeAction="showModal = false">
      <div class="btobapCheck-modal">
        <div class="search-content mi-search-content">
          <input type="text" placeholder="选择对账客户">
          <span @click="toChooseUser"><i class="iconfont icon-sousuo"></i></span>
        </div>
        <div style="padding-left: 0.15rem">
          <span class="title inline-block" style="font-size: 0.28rem;color: #666666;line-height: 0.5rem;margin-top:0.18rem">单据时间：</span>
          <div class="date-wrap">
            <label>
              <i class="iconfont icon-ico-date"></i>
              <input type="date" v-model="dateObj.fromDate" @change="setDate('fromDate')">
              <p v-if="dateObj.fromDate">{{dateObj.fromDate | date}}</p>
            </label>
            <span>—</span>
            <label>
              <i class="iconfont icon-ico-date"></i>
              <input type="date" v-model="dateObj.toDate" @change="setDate('toDate')">
              <p v-if="dateObj.toDate">{{dateObj.toDate | date}}</p>
            </label>
          </div>
        </div>
        <div class="choosescreen clearfix">
          <div class="fr">{{'收起'}}筛选条件<i class="iconfont icon-arrow-up"></i></div>
        </div>
        <div class="choosescreen-list">
          <div><span>应付供应商：</span><input type="text" v-model="screenObj.key" placeholder="可用应付供应商名称筛选" /></div>
          <div><span>物料名称：</span><input type="text" placeholder="请输入物料名称" /></div>
          <div><span>税率：</span><input type="text" placeholder="请输入税率" /></div>
          <div><span>送货工厂：</span><input type="text" placeholder="请输入送货工厂名称" /></div>
          <div><span>规格：</span><input type="text" placeholder="请输入物料规格" /></div>
        </div>
        <div class="choosescreen-result">
          <div class="clearfix choosescreen-result-list">
            <span class="item inline-block">
                <label class="mobile-cart-check"></label>
              </span>
            <div class="choosescreen-result-list-content">
              <div>本次对账数：<span>1</span></div>
              <div>客户名称：<span>1</span></div>
              <div>单据编号：<span>1</span></div>
              <div>发货单号：<span>1</span></div>
              <div>序号：<span>1</span></div>
              <div>类型：<span>1</span></div>
              <div>单据日期：<span>1</span></div>
              <div>应付供应商：<span>1</span></div>
              <div>客户采购单：<span>1</span></div>
              <div>客户料号：<span>1</span></div>
              <div>客户物料名称：<span>1</span></div>
              <div>客户规格型号：<span>1</span></div>
              <div>送货工厂：<span>1</span></div>
              <div>数量：<span>1</span></div>
              <div>单价：<span>1</span></div>
              <div>币别：<span>1</span></div>
              <div>税率：<span>1</span></div>
              <div>金额：<span>1</span></div>
              <div>本次对账金额：<span>1</span></div>
            </div>
          </div>
        </div>
      </div>
    </modal-wrapper>
  </div>
</template>

<script>
  import { ModalWrapper, BaseFilter } from '~components/mobile/base'
  import { PullUp, EmptyStatus } from '~components/mobile/common'
  export default {
    layout: 'mobileNoHeader',
    middleware: 'authenticated',
    data() {
      return {
        filterParams: {
          keyword: '',
          page: 1,
          count: 10
        },
        filterOptions: [
          {
            title: '交易时间',
            selectOption: 'date',
            selectItems: [{
              key: '30天',
              val: 1
            }, {
              key: '90天',
              val: 2
            }, {
              key: '180天',
              val: 3
            }, {
              key: '自定义',
              val: 4
            }],
            defaultVal: 1
          }
        ],
        resourceList: {
          content: []
        },
        showModal: false,
        dateObj: {},
        screenObj: {}
      }
    },
    methods: {
      toChooseUser () {
        console.log('弹出详情表')
      },
      addApCheck() {
        // this.showModal = true
      },
      setDate (type) {
        if (this.dateObj[type]) {
          this.dateObj[type] = new Date(this.dateObj[type]).getTime() - 8 * 60 * 60 * 1000
          if (this.dateObj.fromDate && this.dateObj.toDate && this.dateObj.fromDate > this.dateObj.toDate) {
            if (type === 'fromDate') {
              this.setRemindText('起始时间不能大于结束时间')
            } else {
              this.setRemindText('结束时间不能小于起始时间')
            }
            this.dateObj[type] = null
          }
          if (this.dateObj.toDate && type === 'toDate') {
            this.dateObj.toDate += (23 * 60 * 60 * 1000 + 59 * 60 * 1000 + 59 * 1000)
          }
        } else {
          this.dateObj[type] = null
        }
      },
      onPullUpAction () {
        this.filterParams.page++
        this.setSelect(this.$selectObj.key, this.$selectObj.value, false)
      },
      lookDetails(id) {
        console.log('前往详情并且设置为已读')
        // if (!this.isUnread(id)) { } else {
        //   let sourceId = []
        //   sourceId.push(id)
        //   this.$http.post('/sale/tender/setRead', sourceId).then(res => {
        //     this.getUnread()
        //   })
        // }
      },
      onFilter() {
        this.filterParams.page = 1
        this.setSelect(this.$selectObj.key, this.$selectObj.value, true)
      },
      onSelectAction(selectObj) {
        this.$selectObj = selectObj
        this.setSelect(selectObj.key, selectObj.value, true)
      },
      onValueAction(selectObj) {
        this.$selectObj = selectObj
        this.setSelect(selectObj.key, selectObj.value, true)
      },
      checkStatus (check) {
        let info = ''
        if (check.status === 200) {
          info = '还未开始对账！'
        } else if (check.status === 201 && check.items.length === check.agree) {
          info = '已全部确认!'
        } else if (check.status === 201 && check.items.length !== check.agree) {
          info = '已开始对账，但未全部确认!'
        } else if (check.status === 201 && check.items.length !== check.agree) {
          info = `已确认：${check.agree}，不同意：${check.disagree}，未对帐：${check.items.length - check.agree - check.disagree}`
        }
        return info
      },
      async setSelect(...val) {
        let { data } = await this.$http.get('/purchase/arCheck', {
          params: {
            count: this.filterParams.count,
            page: this.filterParams.page,
            searchFilter: {'keyword': this.filterParams.keyword || '', 'fromDate': val[1].fromDate, 'endDate': val[1].toDate},
            sorting: {"date":"desc"}
          }})
        if (!this.resourceList.content) {
          this.resourceList.content = []
        }
        data.content = data.content || []
        data.content.forEach(item => {
          item.checkAmount = item.checkAmount.toFixed(2)
          item.getTotalProd = 0
          item.items.forEach(im => {
            item.getTotalProd += im.checkQty
          })
        })
        if (!val[2]) {
          this.resourceList.content.push(...data.content)
          data.content = this.resourceList.content
        } else {
          this.resourceList.content = []
        }
        this.resourceList = data
      }
    },
    computed: {
      allPage () {
        return Math.ceil(this.resourceList.totalElement / 10)
      },
      isEmpty () {
        return this.resourceList.content.length === 0
      }
    },
    components: {
      ModalWrapper,
      BaseFilter,
      PullUp,
      EmptyStatus
    },
    filters: {
      time: function (time) {
        if (typeof time === 'number') {
          if (!time) {
            return '无'
          } else {
            let d = new Date(time)
            let year = d.getFullYear()
            let month = d.getMonth() + 1
            let day = d.getDate() < 10 ? '0' + d.getDate() : '' + d.getDate()
            return year + '-' + month + '-' + day
          }
        }
      },
      toFixedNum: function (num) {
        return num ? parseFloat(num).toFixed(2) : '-'
      }
    }
  }
</script>

<style lang="scss" scoped>
  @mixin overFlowHidden {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .mobile-header{
    position: fixed;
    top: 0;
    z-index: 100;
    width:100%;
    height: 1.26rem;
    line-height: 1.26rem;
    /*border-bottom:.01rem solid #ccc;*/
    background: #3e82f5;
    padding:0 .2rem 0 .1rem;
    color:#fff;
  }
  .mobile-header p{
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size:.36rem;
    text-align: center;
    width: 6rem;
    padding-left: 1rem;
  }
  .mobile-center-header p.en-name {
    font-size: .3rem;
  }
  .mobile-header a{
    font-size:.28rem;
    color:#fff;
    position: absolute;
  }
  .mobile-header a i{
    font-size: .48rem;
    margin-right: -.1rem;
  }
  .mobile-header p span {
    position: absolute;
    right: .4rem;
    font-size: .28rem;
  }
  .mobile-header p span i {
    font-size: .28rem;
  }
  .btobapCheck-wrapper {
    background: #f1f3f6;
    margin: 1.26rem 0 0.98rem 0;
    .search-content {
      padding: .24rem 0;
      text-align: center;
      background: #f1f3f6;
      input {
        width: 6.48rem;
        height: .58rem;
        line-height: .58rem;
        border-radius: .14rem;
        margin: 0 0 0 .11rem;
        font-size: .26rem;
        padding: 0 .71rem 0 .21rem;
        border: 1px solid #3f84f6;
      }
    }
    .order-tab {
      background: #3f84f6;
      padding-bottom: 0.2rem;
      .order-tab-wrapper {
        border: solid 1px #ffffff;
        width: 7.06rem;
        margin: 0 auto;
        border-radius: 0.04rem;
        line-height: 0.72rem;
        height: 0.72rem;
        overflow: hidden;
        div {
          color: #ffffff;
          font-size: 0.28rem;
          text-align: center;
          width: 50%;
          &.active {
            background-color: #ffffff;
            color: #3f84f6;
          }
        }
      }
    }
    .order-nav {
      background: #fff;
      div {
        height: 0.82rem;
        line-height: 0.82rem;
        display: inline-block;
        width: 25%;
        text-align: center;
        font-size: .28rem;
        color: #666;
        &.active span{
          color: #3f84f6;
          border-bottom: 0.04rem solid #3f84f6;
          padding-bottom: 0.2rem;
        }
      }
    }
    .btobapCheck-wrapper-scroll {
      height: calc(100vh - 1.26rem - 0.98rem  - 1.06rem - 0.92rem);
      overflow-y: auto;
    }
    .filter-wrapper{
      width: 7.1rem;
      margin: 0 auto 0.27rem;
      background: #fff;
      padding: 0.27rem 0.2rem;
      border-radius: 0.05rem;
    }
    .invoice-btob-list {
      width: 7.1rem;
      margin: 0 auto 0.2rem;
      background: #FFFFFF;
      border-radius: 0.05rem;
      padding: 0 0.24rem;
    }
    .invoice-btob-wrapper-top {
      height: 0.8rem;
      font-size: 0.28rem;
      color: #333333;
      span{
        margin-top: 0.24rem;
        display: inline-block;
        font-size: 0.28rem;
        color: #333333;
        height:0.25rem;
        &.read {
          color: #15B262;
        }
        &.noread {
          color: #DE4545;
        }
        &.isPut {
          background: #15B262;
          color: #FFFFFF;
          font-size: 0.24rem;
          border-radius: 0.04rem;
        }
        &.noPut {
          font-size: 0.24rem;
          background: #DE4545;
          color: #FFFFFF;
          border-radius: 0.04rem;
        }
      }
    }
    .invoice-btob-wrapper-middle {
      border-top: 1px solid #D9D9D9;
      @include overFlowHidden();
      padding-top: 0.15rem;
      font-size: 0.28rem;
      color: #151515;
      line-height: 0.5rem;
      padding-bottom: 0.15rem;
      span {
        color: #666666;
      }
      .invoice-btob-wrapper-middle .tilte{
        color: #333333;
      }
    }
    .invoice-btob-wrapper-content {
      border-top: 1px solid #D9D9D9;
      @include overFlowHidden();
      padding-top: 0.15rem;
      font-size: 0.28rem;
      color: #151515;
      line-height: 0.5rem;
      padding-bottom: 0.15rem;
      span {
        color: #666666;
      }
    }
  }
  .btobapCheck-modal {
    .search-content input {border: 1px solid #3f84f6;}
    .date-wrap{
      text-align: center;
      display: inline-block;
      label {
        width: 2.3rem;
        height: .5rem;
        line-height: .5rem;
        border-radius: .04rem;
        border: 1px solid #bfbfbf;
        background: url(/images/mobile/select-arrow.png) no-repeat;
        background-size: .12rem .06rem;
        vertical-align: middle;
        background-color: #fff;
        background-position: 2.1rem .2rem;
        position: relative;
        margin: .2rem 0 0 0;
        i {
          font-size: .28rem;
          color: #3f84f6;
          margin-left: .1rem;
          float: left;
        }
        input {
          opacity: 0;
          width: 2.22rem;
          height: .5rem;
          position: absolute;
          left: 0;
          z-index: 1;
        }
        p {
          font-weight: normal;
          font-size: .22rem;
          color: #3E81F6;
          text-align: left;
          text-indent: 10px;
        }
      }
      span {
        color: #a0a0a0;
        margin: 0.3rem .05rem 0;
        width: .3rem;
        display: inline-block;
        text-align: center;
        vertical-align: top;
      }
    }
    .choosescreen {
      padding: 0 0.15rem;
      font-size: 0.28rem;
      color: #418DF6;
      line-height: 0.52rem;
      i {
        font-size: 0.28rem;
      }
    }
    .choosescreen-list {
      margin: 0 0.15rem;
      padding-bottom: 0.28rem;;
      border-bottom: 1px solid #D9D9D9;
      div {
        line-height: 0.76rem;
        span {
          font-size: 0.28rem;
          color: #666666;
          display: inline-block;
          width: 1.68rem;
        }
        input {
          height: 0.5rem;
          line-height: 0.5rem;
          width: 4.44rem;
          margin-left: 0.18rem;
          font-size: 0.28rem;
          color: #333;
          border: 1px solid #AEAEAE;
          text-indent: 0.12rem;
        }
      }
    }
    .choosescreen-result {
      margin: 0 0.15rem 0.2rem;
      .choosescreen-result-list-content {
        display: inline-block;
        vertical-align: middle;
        margin-left: 0.15rem;
        div {
          @include overFlowHidden();
          width: 5.5rem;
        }
        padding-top: 0.15rem;
        font-size: 0.28rem;
        color: #151515;
        line-height: 0.5rem;
        padding-bottom: 0.15rem;
        span {
          color: #666666;
        }
      }
    }
  }
</style>
