address.html 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. {extend name="public/container"}
  2. {block name="title"}地址管理{/block}
  3. {block name="content"}
  4. <div id="address-list" class="user-addresslist">
  5. <section>
  6. <form action="" method="post">
  7. <?php $isDefault = ''; ?>
  8. {volist name="address" id="vo"}
  9. <div class="address-item">
  10. <div class="user-info">
  11. <p>收货人:{$vo.real_name} <span> {$vo.phone}</span></p>
  12. <p>收货地址:{$vo.province} {$vo.city} {$vo.district} {$vo.detail}</p>
  13. </div>
  14. <div class="address-btn flex">
  15. <div class="switch-btn">
  16. <label class="well-check">
  17. <input class="ckecks" v-model="isDefault" type="radio" {eq name="vo.is_default" value="1"}checked="checked" <?php $isDefault = $vo['id']; ?>{/eq} value="{$vo.id}"><i class="icon"></i>
  18. 设为默认地址
  19. </label>
  20. </div>
  21. <div class="action-btn">
  22. <span class="edit" @click="redirect('{$vo.id}')">编辑</span>
  23. <span class="delete" @click="remove('{$vo.id}',$event)">删除</span>
  24. </div>
  25. </div>
  26. </div>
  27. {/volist}
  28. </form>
  29. <a class="address-add" href="{:Url('edit_address')}">
  30. 新增地址
  31. </a>
  32. </section>
  33. </div>
  34. <script>
  35. (function(){
  36. requirejs(['vue','lodash','store','helper'],function(Vue,_,storeApi,$h){
  37. new Vue({
  38. el:"#address-list",
  39. data:{
  40. isDefault:"<?=$isDefault?>"
  41. },
  42. watch:{
  43. isDefault:_.debounce(function(v){
  44. $h.loadFFF();
  45. storeApi.setUserDefaultAddress(v,function(){
  46. $h.loadClear();
  47. },function(){
  48. $h.loadClear();
  49. return true;
  50. })
  51. },300)
  52. },
  53. methods:{
  54. remove:function(addressId,e){
  55. storeApi.removeUserAddress(addressId,function(){
  56. $(e.target).parents('.address-item').remove();
  57. })
  58. },
  59. redirect:function(addressId){
  60. location.href = $h.U({
  61. c:"my",
  62. a:"edit_address",
  63. p:{addressId:addressId}
  64. });
  65. }
  66. }
  67. });
  68. });
  69. })();
  70. </script>
  71. {/block}