address.vue 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  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">{{query.isContact ? '新增联系地址':'新增收货地址'}}</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(req.public.mapLBSKEY);
  47. let merchant = req.getStorage("MERCHANT");
  48. this.setData({
  49. merchant: merchant
  50. });
  51. if(options.isContact){
  52. uni.setNavigationBarTitle({
  53. title: '联系地址'
  54. })
  55. }
  56. },
  57. onShow: function() {
  58. this.isLoad = true;
  59. this.form.page = 1;
  60. this.getList();
  61. },
  62. onReachBottom() {
  63. this.form.page++;
  64. this.getList();
  65. },
  66. methods: {
  67. getList() {
  68. if (!this.isLoad) return false;
  69. this.isLoad = false;
  70. let that = this;
  71. req.getRequest('/api/address/list', this.form, data => {
  72. if (data.list && data.list.length == 10) this.isLoad = true;
  73. if (that.form.page > 1) data.list = that.pageList.concat(data.list);
  74. that.setData({
  75. pageList: data.list
  76. });
  77. });
  78. },
  79. chooseAddress(event) {
  80. const index = event.currentTarget.dataset.index;
  81. const page = this.pageList[index];
  82. let that = this;
  83. if (this.query.isChoose) {
  84. //选择地址
  85. // if (!page.lat || !page.lng) return req.msg('地址未解析,请重新修改');
  86. // console.log(that.merchant.isDistance);
  87. // if (that.merchant.isDistance === 1 && that.query.orderType === 5) {
  88. // let merchant = that.merchant;
  89. // // console.log(merchant); // QQMapWX.geocoder(merchant.address,success=>{
  90. // // console.log(success)
  91. // // merchant.lat=success.location.lat
  92. // // merchant.lng=success.location.lng
  93. // // QQMapWX.calculate({ latitude: merchant.lat, longitude: merchant.lng }, [{ latitude: page.lat, longitude: page.lng }], merchant.distance, res => {
  94. // // console.log(res)
  95. // // })
  96. // // })
  97. // QQMapWX.calculate({
  98. // latitude: merchant.lat,
  99. // longitude: merchant.lng
  100. // }, [{
  101. // latitude: page.lat,
  102. // longitude: page.lng
  103. // }], merchant.distance, res => {
  104. // // console.log(res);
  105. // });
  106. // } else {
  107. let pages = getCurrentPages();
  108. // console.log(page)
  109. var prevPage = pages[pages.length - 2];
  110. prevPage.$vm.address=page;
  111. uni.navigateBack();
  112. // }
  113. } else {
  114. //设置默认地址
  115. req.postRequest('/api/address/set/default', {
  116. id: page.id
  117. }, () => {
  118. let def = that.pageList.findIndex(it => it.isDefault == 1);
  119. let d = {};
  120. if (def > -1) {
  121. d['pageList[' + def + '].isDefault'] = 0;
  122. }
  123. d['pageList[' + index + '].isDefault'] = 1;
  124. that.setData(d);
  125. });
  126. }
  127. },
  128. deleteAddress(event) {
  129. const index = event.currentTarget.dataset.index;
  130. const page = this.pageList[index];
  131. let that = this;
  132. req.msgConfirm('确定删除该地址', () => {
  133. req.postRequest('/api/address/delete', {
  134. id: page.id
  135. }, () => {
  136. that.pageList.splice(index, 1);
  137. that.setData({
  138. pageList: that.pageList
  139. });
  140. });
  141. });
  142. }
  143. }
  144. };
  145. </script>
  146. <style>
  147. @import "./address.css";
  148. </style>