lendHistory.vue 2.1 KB
<template>
  <v-layout column justify-center align-center id="borrowHistory">
    <v-flex>
      <HistoryStatisticsCard type="lend" :data="overview"/>
      <div id="SearchBlock">
        <input v-model="search" type="search" id="searchInput" :class="search ? '' : 'empty'" @input="getData" placeholder="搜索姓名 search"/>
      </div>
    	<HistoryList :list="list"/>
    </v-flex>
  </v-layout>
</template>

<script>
import HistoryStatisticsCard from '@/components/HistoryStatisticsCard'
import HistoryList from '@/components/HistoryList'
export default {
  async asyncData({store, query, app, redirect}) {
    let {data} = await app.$axios.get(`/iou/history?type=credit&userId=${store.state.user.id}`)
    if (data.success) {
      return {list: data.list, overview: data.overview}
    } else {
      store.dispatch('displayMessage', data.msg)
      return {list: [], overview: {
        total: '0.00',
        interest: '0.00',
        times: '0'
      }}
    }
  },
  data:() => ({
    search: '',
  }),
  components: {
    HistoryStatisticsCard,
    HistoryList
  },
  methods: {
    async getData() {
      let {data} = await this.$axios.get(`/iou/history?type=credit&userId=${this.$store.state.user.id}&search=${this.search}`)
      if (data.success) {
        this.list = data.list
      } else {
        this.$store.dispatch('displayMessage', data.msg)
      }
    }
  }
}
</script>

<style lang="scss" scpoed>
  #lendHistory {
    #SearchBlock {
      width: 100vw;
      padding: 0.9rem 0.7rem;

      #searchInput {
        background-color: $menu-grey;
        border: 1px solid #979797;
        border-radius: 0.5rem;
        width: 100%;
        height: 2rem;
        text-align: center;
        outline: none;
        color: $light-gold;

        &.empty {
          font-family: 'Material Icons';
        }
      }
      ::-moz-placeholder { color: $light-gold; line-height: 1.2rem;}
      ::-webkit-input-placeholder { color:$light-gold; line-height: 1.2rem; }
      :-ms-input-placeholder { color:$light-gold; line-height: 1.2rem; }
    }
  }
</style>