address.html 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. {extend name="public/container"}
  2. {block name="title"}地址列表{/block}
  3. {block name="head_top"}
  4. <style>
  5. body {
  6. padding-bottom: 1.18rem;
  7. background-color: #f5f5f5;
  8. }
  9. .nothing {
  10. position: absolute;
  11. top: 30%;
  12. left: 50%;
  13. width: 4rem;
  14. height: 4rem;
  15. -webkit-transform: translate(-50%, -50%);
  16. transform: translate(-50%, -50%);
  17. }
  18. </style>
  19. {/block}
  20. {block name="content"}
  21. <div v-cloak id="app">
  22. <div class="address-list">
  23. <ul v-if="address && address.length">
  24. <li v-for="(item, index) in address" :key="index">
  25. <div class="head">
  26. <div>联系人:{{item.real_name}} {{item.phone}}</div>
  27. <div>收货地址:{{item.province}}{{item.city}}{{item.district}}{{item.detail}}</div>
  28. </div>
  29. <div class="foot">
  30. <label>
  31. <input v-model="picked" :value="item.id" type="radio" name="address" hidden>
  32. <div>设为默认</div>
  33. </label>
  34. <div>
  35. <a :href="$h.U({c:'my',a:'edit_address'})+'?addressId='+item.id"><img src="/wap/first/zsff/images/editor.png">编辑</a>
  36. <a href="javascript:;" @click="remove(item.id)"><img src="/wap/first/zsff/images/trash.png">删除</a>
  37. </div>
  38. </div>
  39. </li>
  40. </ul>
  41. <img v-else class="nothing" src="/wap/first/zsff/images/no_address.png">
  42. <div class="footer">
  43. <a :href="$h.U({c:'my',a:'edit_address'})"><img src="/wap/first/zsff/images/add-address.png"><span>添加新地址</span></a>
  44. <a v-if="isWechat" href="javascript:;" @click="getWxAddress"><img src="/wap/first/zsff/images/weixin.png"><span>导入微信地址</span></a>
  45. </div>
  46. </div>
  47. <shortcut></shortcut>
  48. </div>
  49. <script>
  50. var address = {$address},isWechat={$isWechat ? 'true' : 'false'};
  51. require(['vue', 'store', 'helper', 'layer', '{__WAP_PATH}zsff/js/shortcut.js'], function (Vue, api, $h, layer) {
  52. var app = new Vue({
  53. el: '#app',
  54. data: {
  55. address: address,
  56. picked: '',
  57. isWechat: isWechat
  58. },
  59. watch: {
  60. address: {
  61. handler: function (value) {
  62. var result = value.find(function (item) {
  63. return item.is_default;
  64. });
  65. if (result) {
  66. this.picked = result.id;
  67. }
  68. },
  69. immediate: true
  70. },
  71. picked: function (value) {
  72. this.setDefault(value);
  73. }
  74. },
  75. methods: {
  76. setDefault: function (id) {
  77. $h.loadFFF();
  78. api.baseGet($h.U({ c: 'auth_api', a: 'set_user_default_address', q: { addressId: id } }), function () {
  79. $h.loadClear();
  80. $h.pushMsg('设为默认成功');
  81. }.bind(this), function (err) {
  82. $h.loadClear();
  83. }.bind(this));
  84. },
  85. remove: function (id) {
  86. layer.confirm('是否删除该地址?', {
  87. icon: 3,
  88. title: false,
  89. btn: ['删除', '取消']
  90. }, function (index) {
  91. $h.loadFFF();
  92. api.baseGet($h.U({ c: 'auth_api', a: 'remove_user_address', q: { addressId: id } }), function () {
  93. $h.loadClear();
  94. $h.pushMsg('删除成功');
  95. this.address = this.address.filter(function (value) {
  96. return value.id !== id;
  97. });
  98. }.bind(this), function (err) {
  99. $h.loadClear();
  100. }.bind(this));
  101. layer.close(index);
  102. }.bind(this));
  103. },
  104. getWxAddress: function () {
  105. mapleWx($jssdk(), function () {
  106. this.openAddress(function (res) {
  107. $h.loadFFF();
  108. api.basePost($h.U({ c: 'auth_api', a: 'edit_user_address' }), {
  109. id: '',
  110. real_name: res.userName,
  111. phone: res.telNumber,
  112. address: {
  113. province: res.provinceName,
  114. city: res.cityName,
  115. district: res.countryName
  116. },
  117. detail: res.detailInfo,
  118. is_default: false
  119. }, function () {
  120. location.reload();
  121. }.bind(this), function (err) {
  122. $h.loadClear();
  123. });
  124. }, function (err) {
  125. $h.pushMsg('导入微信地址失败');
  126. });
  127. });
  128. }
  129. }
  130. });
  131. });
  132. </script>
  133. {/block}