edit_address.html 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. <!-- +---------------------------------------------------------------------- -->
  2. <!-- | CRMEB [ CRMEB赋能开发者,助力企业发展 ] -->
  3. <!-- +---------------------------------------------------------------------- -->
  4. <!-- | Copyright (c) 2016~2022 https://www.crmeb.com All rights reserved. -->
  5. <!-- +---------------------------------------------------------------------- -->
  6. <!-- | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权 -->
  7. <!-- +---------------------------------------------------------------------- -->
  8. <!-- | Author: CRMEB Team <admin@crmeb.com> -->
  9. <!-- +---------------------------------------------------------------------- -->
  10. {extend name="public/container"}
  11. {block name="title"}添加地址{/block}
  12. {block name="head_top"}
  13. <style>
  14. body {
  15. background-color: #f5f5f5;
  16. }
  17. </style>
  18. {/block}
  19. {block name="content"}
  20. <div v-cloak id="app">
  21. <div class="add-address">
  22. <form action="javascript:void(0)" @submit="addAddress">
  23. <div class="section">
  24. <label>
  25. <div>姓名</div>
  26. <input v-model="realName" type="text" placeholder="请输入姓名">
  27. </label>
  28. <label>
  29. <div>联系电话</div>
  30. <input v-model="phone" type="tel" maxlength="11" placeholder="请输入联系电话">
  31. </label>
  32. <label>
  33. <div>所在地区</div>
  34. <input v-model="area" placeholder="请选择" readonly @focus="show = true">
  35. <img src="/wap/first/zsff/images/location_fill.png">
  36. </label>
  37. <label>
  38. <div>详细地址</div>
  39. <textarea v-model="detail" placeholder="请填写具体地址" rows="1"></textarea>
  40. </label>
  41. </div>
  42. <div class="section">
  43. <label>
  44. <input v-model="isDefault" type="checkbox" hidden>
  45. <div class="checkbox">
  46. <img v-if="isDefault" src="/wap/first/zsff/images/checkbox02.png">
  47. <img v-else src="/wap/first/zsff/images/checkbox01.png">
  48. </div>
  49. 设置为默认地址
  50. </label>
  51. </div>
  52. <div class="btn">
  53. <button type="submit">立即保存</button>
  54. </div>
  55. </form>
  56. </div>
  57. <quick-menu></quick-menu>
  58. <yd-cityselect v-model="show" :callback="result" :items="district" :provance="provance" />
  59. </div>
  60. <script src="{__PLUG_PATH}reg-verify.js"></script>
  61. <script>
  62. var addressInfo = {$addressInfo},cartId={$cartId};
  63. require(['vue', 'store', 'helper', 'ydui', 'static/plug/ydui/province_city_area', 'quick'], function (Vue, api, $h, ydui, district) {
  64. Vue.use(ydui.default);
  65. var app = new Vue({
  66. el: '#app',
  67. data: {
  68. id: addressInfo.id || '',
  69. realName: addressInfo.real_name || '',
  70. phone: addressInfo.phone || '',
  71. address: {
  72. province: addressInfo.province || '',
  73. city: addressInfo.city || '',
  74. district: addressInfo.district || ''
  75. },
  76. detail: addressInfo.detail || '',
  77. isDefault: addressInfo.is_default === 1 || false,
  78. show: false,
  79. district: district,
  80. cartId:cartId,
  81. provance: addressInfo.province
  82. },
  83. computed: {
  84. area: function () {
  85. var address = this.address,
  86. area = '';
  87. if (address.province && address.city && address.district) {
  88. area += address.province + ' ' + address.city + ' ' + address.district;
  89. }
  90. return area;
  91. }
  92. },
  93. methods: {
  94. addAddress: function () {
  95. if ($reg.isEmpty(this.realName)) {
  96. return $h.returnErrorMsg('请输入姓名');
  97. } else if (!$reg.isPhone(this.phone)) {
  98. return $h.returnErrorMsg('请输入正确的手机号');
  99. } else if ($reg.isEmpty(this.address.province) || $reg.isEmpty(this.address.city) || $reg.isEmpty(this.address.district)) {
  100. return $h.returnErrorMsg('请选择所在地区');
  101. } else if ($reg.isEmpty(this.detail)) {
  102. return $h.returnErrorMsg('请输入详细地址');
  103. } else {
  104. $h.loadFFF();
  105. api.basePost($h.U({ c: 'auth_api', a: 'edit_user_address' }), {
  106. id: this.id,
  107. real_name: this.realName,
  108. phone: this.phone,
  109. address: this.address,
  110. detail: this.detail,
  111. is_default: this.isDefault
  112. }, function () {
  113. location.href = this.cartId ? "{:url('wap/special/confirm_order')}?cartId=" + this.cartId : $h.U({ c: 'my', a: 'address' });
  114. }.bind(this), function (err) {
  115. $h.loadClear();
  116. }.bind(this));
  117. }
  118. },
  119. result: function (ret) {
  120. this.address.province = ret.itemName1;
  121. this.address.city = ret.itemName2;
  122. this.address.district = ret.itemName3;
  123. }
  124. }
  125. });
  126. });
  127. </script>
  128. {/block}