list.vue 1.5 KB
Newer Older
sin's avatar
sin committed
1
<template>
sin's avatar
sin committed
2
  <div>
sin's avatar
sin committed
3 4 5

    <headerNav title="我的地址"/>
    <van-address-list
sin's avatar
sin committed
6 7 8 9 10 11 12 13
      v-model="chosenAddressId"
      :class="isSelect?'':'hideselect'"
      :list="list"
      @add="onAdd"
      @edit="onEdit"
      @select="onSelect"
    />
  </div>
sin's avatar
sin committed
14 15 16 17
</template>

<script>

sin's avatar
sin committed
18
  import {GetAddressList} from "../../../api/user.js";
19 20
  import { AddressList } from 'vant';
  import eventBus from '../../eventBus';
sin's avatar
sin committed
21 22 23 24

  export default {
    components: {
      [AddressList.name]: AddressList,
sin's avatar
sin committed
25 26
    },
    data() {
sin's avatar
sin committed
27
      return {
sin's avatar
sin committed
28
        chosenAddressId: '1',
sin's avatar
sin committed
29
        isSelect: false,
sin's avatar
sin committed
30
        list: [],
sin's avatar
sin committed
31
      }
sin's avatar
sin committed
32 33 34
    },

    methods: {
sin's avatar
sin committed
35 36 37
      onAdd() {
        this.$router.push('/user/address/edit')
      },
sin's avatar
sin committed
38

sin's avatar
sin committed
39 40 41 42 43 44
      onEdit(item, index) {
        this.$router.push('/user/address/edit?id=' + item.id);
      },
      onSelect(item, index) {
        if (!this.isSelect) {
          return;
sin's avatar
sin committed
45
        }
46 47 48
        this.$emit('selectaddress', item);
        //传递一个map,choiceHospital是key,hospital是value
        // eventBus.$emit('selectaddress',item);
sin's avatar
sin committed
49 50
        this.$router.go(-1);
      }
sin's avatar
sin committed
51
    },
sin's avatar
sin committed
52 53 54 55 56 57 58 59 60 61 62 63 64
    created: function () {
      this.chosenAddressId = this.$route.query.id;
      this.isSelect = this.$route.query.id > 0;
      GetAddressList().then(response => {
        this.list = response.map(item => {

          // convert data
          return {
            ...item,
            tel: item.mobile,
          }
        });
      })
sin's avatar
sin committed
65 66
    }

sin's avatar
sin committed
67
  }
sin's avatar
sin committed
68 69 70
</script>

<style lang="less">
sin's avatar
sin committed
71 72 73
  .hideselect {
    .van-radio__input {
      display: none;
sin's avatar
sin committed
74
    }
sin's avatar
sin committed
75
  }
sin's avatar
sin committed
76
</style>