list.vue 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. <template>
  2. <view class="list">
  3. <view class="address">
  4. <view class="main" v-for="(item,index) in addressList" :key="index">
  5. <view class="left">
  6. <van-checkbox checked-color="#ff0000" :value="item.commonAddr" @change="onChange1" :data-param1="item"></van-checkbox>
  7. </view>
  8. <view class="mid">
  9. <view class="top">
  10. {{item.receiver}}--{{item.mobile}}
  11. <van-tag type="danger" round v-if="item.commonAddr == 1">默认</van-tag>
  12. </view>
  13. <view class="bottom">
  14. <text class="province">{{item.province}}</text>
  15. <text>{{item.city}}</text>
  16. <text>{{item.area}}</text>
  17. <text>{{item.addr}}</text>
  18. </view>
  19. </view>
  20. <view class="right">
  21. <van-icon name="edit" @click="editAddress(item)" />
  22. </view>
  23. </view>
  24. </view>
  25. <van-button type="danger" class="btn" round @click="addAddress">新增地址</van-button>
  26. </view>
  27. </template>
  28. <script>
  29. import {getAddressList,defaultAddr} from '@/api/address.js';
  30. export default{
  31. data(){
  32. return {
  33. addressList:[],//地址列表
  34. }
  35. },
  36. onShow() {
  37. this.init();
  38. },
  39. methods:{
  40. async init() {
  41. let {
  42. data
  43. } = await getAddressList();
  44. this.addressList = data;
  45. console.log(this.addressList,'最后111')
  46. },
  47. // 修改默认地址
  48. onChange1(event) {
  49. let addrIds = event.currentTarget.dataset.param1.addrId;
  50. defaultAddr(addrIds).then(res => {
  51. console.log(res,'成功')
  52. this.init();
  53. }).catch(err => {
  54. console.log(err,'失败')
  55. })
  56. console.log(this.addressList,'最后')
  57. },
  58. // 新增
  59. addAddress() {
  60. uni.navigateTo({
  61. url:"/pages/address/address"
  62. })
  63. },
  64. // 编辑
  65. editAddress(item) {
  66. uni.navigateTo({
  67. url:"/pages/address/address?obj1=" + JSON.stringify(item)
  68. })
  69. }
  70. }
  71. }
  72. </script>
  73. <style scoped lang="scss">
  74. .address {
  75. padding: 20rpx;
  76. .main {
  77. display: flex;
  78. height: 140rpx;
  79. margin-top: 10rpx;
  80. align-items: center;
  81. .left {
  82. flex: 1;
  83. }
  84. .mid {
  85. flex: 8;
  86. .bottom {
  87. width: 600rpx;
  88. margin-top: 10rpx;
  89. overflow: hidden;
  90. white-space: nowrap;
  91. text-overflow: ellipsis;
  92. text {
  93. margin-left: 10rpx;
  94. }
  95. .province {
  96. margin-left: 0;
  97. }
  98. }
  99. }
  100. .right {
  101. flex: 1;
  102. }
  103. }
  104. }
  105. ::v-deep .van-tag {
  106. padding: var(--tag-padding,2px 8px);
  107. margin-left: 10rpx;
  108. }
  109. ::v-deep .van-button--round {
  110. width: 80%;
  111. }
  112. .btn {
  113. width: 100%;
  114. position: absolute;
  115. bottom: 20rpx;
  116. left: 50%;
  117. margin-left: -40%;
  118. }
  119. </style>