address.vue 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. <template>
  2. <view class="address">
  3. <view class="address_wu" v-if="addressList.length == 0">
  4. <view class="address_wu_img center">
  5. <image src="/static/image/publice/zanwushouhuo@2x.png" mode=""></image>
  6. <text>暂无收货地址</text>
  7. </view>
  8. <button class="address_wu_btn" hover-class="hover-view" @click="address(0)">添加收货地址</button>
  9. </view>
  10. <view class="address_have" v-else>
  11. <view class="address_have_ul">
  12. <view class="address_have_li flex" v-for="(item,index) in addressList" :key="index" @click="selectAddress(item)">
  13. <view class="address_have_li_main">
  14. <view class="address_have_li_title">{{ item.province }} {{ item.city }} {{ item.area }}</view>
  15. <view class="address_have_li_txt">{{ item.detail }}</view>
  16. <view class="address_have_li_name flexs">
  17. <text>{{ item.username }}</text>
  18. <text>{{ item.mobile }}</text>
  19. </view>
  20. </view>
  21. <view class="address_have_li_edit" @click.stop="editAddress(item)">
  22. <image src="/static/image/me/bianji@2x.png" mode=""></image>
  23. </view>
  24. </view>
  25. </view>
  26. <button class="address_have_btn address_wu_btn" @click="address(0)">新增收货地址</button>
  27. </view>
  28. </view>
  29. </template>
  30. <script>
  31. export default {
  32. data() {
  33. return {
  34. type:1,//1回收选择地址
  35. addressList:[]
  36. };
  37. },
  38. methods:{
  39. //编辑地址
  40. editAddress (item) {
  41. uni.setStorageSync('editAddress',JSON.stringify(item))
  42. uni.navigateTo({url:'/pages/me/addSite?type=1'})
  43. },
  44. //选择地址
  45. selectAddress (item) {
  46. if (this.type == 1 || this.type == 2) {
  47. uni.setStorageSync(this.type == 1 ? 'applyAddress' : '',JSON.stringify(item))
  48. uni.navigateBack()
  49. }
  50. },
  51. address (type) {
  52. uni.navigateTo({url:'/pages/me/addSite?type=' + type})
  53. },
  54. //获取收货地址
  55. getAddressList () {
  56. this.$api.myAddress().then(res=>{
  57. if (res.code === 1) {
  58. this.addressList = res.data
  59. if (res.data.length == 0) {
  60. uni.removeStorageSync('applyAddress')
  61. }
  62. }
  63. })
  64. }
  65. },
  66. onLoad ({type}) {
  67. this.type = type
  68. },
  69. onShow () {
  70. this.getAddressList()
  71. }
  72. }
  73. </script>
  74. <style lang="scss">
  75. .address_wu {
  76. display: flex;
  77. padding: 165rpx 30rpx 35rpx 30rpx;
  78. flex-direction: column;
  79. justify-content: space-between;
  80. height: calc(100vh - 44px);
  81. .address_wu_img {
  82. flex-direction: column;
  83. image {
  84. width: 354rpx;
  85. height: 310rpx;
  86. margin-bottom: 50rpx;
  87. }
  88. text {
  89. font-size: 28rpx;
  90. font-weight: bold;
  91. }
  92. }
  93. }
  94. .address_wu_btn {
  95. height: 98rpx;
  96. color: #333333;
  97. font-size: 30rpx;
  98. font-weight: bold;
  99. background: #FFFFFF;
  100. box-shadow: 0rpx 0rpx 121rpx 0rpx rgba(63, 52, 2, 0.12);
  101. border-radius: 10rpx;
  102. }
  103. .address_have_ul {
  104. padding: 30rpx 30rpx 130rpx 30rpx;
  105. .address_have_li {
  106. padding: 30rpx;
  107. margin-bottom: 30rpx;
  108. background: #FFFFFF;
  109. .address_have_li_title {
  110. color: #666666;
  111. font-size: 28rpx;
  112. }
  113. .address_have_li_txt {
  114. font-size: 26rpx;
  115. margin: 20rpx 0;
  116. }
  117. .address_have_li_name {
  118. text {
  119. color: #999999;
  120. font-size: 30rpx;
  121. &:last-child {
  122. font-size: 28rpx;
  123. margin-left: 20rpx;
  124. }
  125. }
  126. }
  127. .address_have_li_edit {
  128. width: 44rpx;
  129. height: 44rpx;
  130. }
  131. }
  132. }
  133. .address_have_btn {
  134. width: 690rpx;
  135. left: 50%;
  136. bottom: 34rpx;
  137. transform: translateX(-50%);
  138. position: fixed;
  139. }
  140. </style>