address.vue 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. <template>
  2. <view>
  3. <!--pages/address/address.wxml-->
  4. <view v-for="(item, index) in pageList" :key="index" class="li dflex">
  5. <image :src="item.isDefault == 1? '/static/pages/images/gou_h.png' : '/static/pages/images/gou.png'"
  6. class="check" v-if="!query.isChoose"></image>
  7. <image
  8. :src="item.isDefault == 1 &&query.isChoose? '/static/pages/images/gou_h.png' : '/static/pages/images/gou.png'"
  9. class="check" @tap="chooseAddress" :data-index="index" v-else></image>
  10. <view class="info flex" :data-index="index" @tap="chooseAddress">
  11. <view class="name">{{item.name}}<text>{{item.phone}}</text></view>
  12. <view class="addr"><text v-if="item.isDefault == 1">默认</text>{{item.address}}{{item.house}}</view>
  13. </view>
  14. <navigator hover-class="none"
  15. :url="'/mine/editAddress/editAddress?id=' + item.id + '&addressId=' + query.addressId">
  16. <image src="/static/pages/images/bjico.png" class="edit"></image>
  17. </navigator>
  18. </view>
  19. <navigator class="add" hover-class="none" url="/mine/addAddress/addAddress">新增收货地址</navigator>
  20. </view>
  21. </template>
  22. <script>
  23. const req = require("../../utils/request.js");
  24. var QQMapWX = require("../../utils/qqmap.js");
  25. export default {
  26. data() {
  27. return {
  28. form: {
  29. page: 1,
  30. limit: 10
  31. },
  32. pageList: [],
  33. isLoad: true,
  34. query: {},
  35. merchant: {},
  36. address: ""
  37. };
  38. },
  39. components: {},
  40. props: {},
  41. onLoad: function(options) {
  42. if (options) this.query = options;
  43. this.setData({
  44. query: options
  45. }); // 实例化API核心类
  46. QQMapWX.initMap('3OJBZ-EQEKO-PFNWC-SHHEK-CGWAJ-KRBF7');
  47. let merchant = req.getStorage("MERCHANT");
  48. this.setData({
  49. merchant: merchant
  50. });
  51. },
  52. onShow: function() {
  53. this.isLoad = true;
  54. this.form.page = 1;
  55. this.getList();
  56. },
  57. onReachBottom() {
  58. this.form.page++;
  59. this.getList();
  60. },
  61. methods: {
  62. getList() {
  63. if (!this.isLoad) return false;
  64. this.isLoad = false;
  65. let that = this;
  66. req.getRequest('/api/address/list', this.form, data => {
  67. if (data.list && data.list.length == 10) this.isLoad = true;
  68. if (that.form.page > 1) data.list = that.pageList.concat(data.list);
  69. that.setData({
  70. pageList: data.list
  71. });
  72. });
  73. },
  74. chooseAddress(event) {
  75. const index = event.currentTarget.dataset.index;
  76. const page = this.pageList[index];
  77. let that = this;
  78. if (this.query.isChoose) {
  79. //选择地址
  80. if (!page.lat || !page.lng) return req.msg('地址未解析,请重新修改');
  81. // console.log(that.merchant.isDistance);
  82. if (that.merchant.isDistance === 1 && that.query.orderType === 5) {
  83. let merchant = that.merchant;
  84. // console.log(merchant); // QQMapWX.geocoder(merchant.address,success=>{
  85. // console.log(success)
  86. // merchant.lat=success.location.lat
  87. // merchant.lng=success.location.lng
  88. // QQMapWX.calculate({ latitude: merchant.lat, longitude: merchant.lng }, [{ latitude: page.lat, longitude: page.lng }], merchant.distance, res => {
  89. // console.log(res)
  90. // })
  91. // })
  92. QQMapWX.calculate({
  93. latitude: merchant.lat,
  94. longitude: merchant.lng
  95. }, [{
  96. latitude: page.lat,
  97. longitude: page.lng
  98. }], merchant.distance, res => {
  99. // console.log(res);
  100. });
  101. } else {
  102. let pages = getCurrentPages();
  103. // console.log(page)
  104. var prevPage = pages[pages.length - 2];
  105. prevPage.$vm.setData({
  106. address: page
  107. });
  108. uni.navigateBack();
  109. }
  110. } else {
  111. //设置默认地址
  112. req.postRequest('/api/address/set/default', {
  113. id: page.id
  114. }, () => {
  115. let def = that.pageList.findIndex(it => it.isDefault == 1);
  116. let d = {};
  117. if (def > -1) {
  118. d['pageList[' + def + '].isDefault'] = 0;
  119. }
  120. d['pageList[' + index + '].isDefault'] = 1;
  121. that.setData(d);
  122. });
  123. }
  124. },
  125. deleteAddress(event) {
  126. const index = event.currentTarget.dataset.index;
  127. const page = this.pageList[index];
  128. let that = this;
  129. req.msgConfirm('确定删除该地址', () => {
  130. req.postRequest('/api/address/delete', {
  131. id: page.id
  132. }, () => {
  133. that.pageList.splice(index, 1);
  134. that.setData({
  135. pageList: that.pageList
  136. });
  137. });
  138. });
  139. }
  140. }
  141. };
  142. </script>
  143. <style>
  144. @import "./address.css";
  145. </style>