cash-out-record.vue 2.83 KB
Newer Older
1 2 3
<template>
  <div class="cash-out-record">
    <div id="top-month">
leiqingsong's avatar
leiqingsong committed
4
      <span style="width: 90px; margin-right: 5px">{{ selected }}</span>
5 6 7 8 9
      <van-icon name="arrow-down" @click="show = true" />
    </div>
    <div class="record-list">
      <base-refresh-scroll @downLoad="onDownLoad" @upRefresh="onUpRefresh">
        <div slot="content">
leiqingsong's avatar
leiqingsong committed
10 11
          <div v-for="(item, index) in recordList" :key="'record' + index">
            <record-item :record-item="item" />
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
          </div>
        </div>
      </base-refresh-scroll>
    </div>

    <van-popup v-model="show" get-container="#top-month">
      <van-datetime-picker
        v-model="currentDate"
        type="year-month"
        @cancel="onPickerCancle"
        @confirm="onPickerConfirm"
      >
      </van-datetime-picker>
    </van-popup>
  </div>
</template>

<script>
leiqingsong's avatar
leiqingsong committed
30
import { getWithdrawalRecord } from "@/api/wallet";
31 32 33 34 35 36 37 38 39 40 41 42 43
import RecordItem from "./components/recordItem.vue";
import BaseRefreshScroll from "../../components/BaseRefreshScroll.vue";
export default {
  components: {
    BaseRefreshScroll,
    RecordItem
  },
  name: "CashOutRecord",
  data() {
    return {
      show: false,
      options: [{ text: "2021年3月", value: 0 }],
      selected: "",
leiqingsong's avatar
leiqingsong committed
44 45
      currentDate: new Date(),
      recordList: []
46 47 48 49 50
    };
  },
  mounted() {
    this.selected = `${this.currentDate.getFullYear()}${this.currentDate.getMonth() +
      1}月`;
leiqingsong's avatar
leiqingsong committed
51 52
    const time = this.currentDate.toLocaleDateString().replaceAll("/", "-");
    this.getRecordList(time);
53 54 55 56 57 58 59
  },
  methods: {
    onUpRefresh() {
      console.log("上拉刷新");
    },
    onDownLoad() {
      console.log("下拉加载");
leiqingsong's avatar
leiqingsong committed
60 61
      const time = this.currentDate.toLocaleDateString().replaceAll("/", "-");
      this.getRecordList(time);
62 63 64 65 66 67 68
    },
    onPickerCancle() {
      this.show = false;
    },
    onPickerConfirm(val) {
      this.selected = `${val.getFullYear()}${val.getMonth() + 1}月`;
      this.show = false;
leiqingsong's avatar
leiqingsong committed
69 70 71 72 73
      const time = val.toLocaleDateString().replaceAll("/", "-");
      this.getRecordList(time);
    },
    getRecordList(yearMonth) {
      const params = {
leiqingsong's avatar
leiqingsong committed
74
        userId: this.$userId,
leiqingsong's avatar
leiqingsong committed
75 76 77 78 79 80 81
        yearMonth: yearMonth
      };
      getWithdrawalRecord(params).then(res => {
        if (res.code === 0) {
          this.recordList = res.data;
        }
      });
82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117
    }
  }
};
</script>

<style lang="scss" scoped>
#top-month {
  position: relative;
  display: flex;
  align-items: center;
  height: 44px;
  margin-bottom: 10px;
  padding-left: 15px;
  font-size: 16px;
  font-weight: bold;
  background-color: #ffffff;
  .van-popup {
    position: absolute;
    top: 145px;
    left: 100px;
    width: 200px;
    max-height: 200px;
    .van-picker {
      height: 200px;
      overflow: hidden;
    }
  }
  ::v-deep .van-picker__frame {
    border: 1px solid;
  }
}
.record-list {
  position: relative;
  height: calc(100vh - 100px);
}
</style>