景徳镇旅游微信小程序
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

215 lines
4.0 KiB

8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
  1. <template>
  2. <view class="address">
  3. <navbar title="地址管理" leftClick @leftClick="leftClick" />
  4. <view class="address-list">
  5. <addressList
  6. controls
  7. ref="addressList"
  8. @deleteAddress="deleteAddress"
  9. @editAddress="editAddress"
  10. @editDefault="editDefault"/>
  11. </view>
  12. <redactAddress
  13. ref="addressPopup"
  14. :addressDetail="addressDetail"
  15. @saveOrUpdate="saveOrUpdate"
  16. :title="title"></redactAddress>
  17. <view class="add-btn">
  18. <view @click="addBtn" class="btn">
  19. 新增地址
  20. </view>
  21. </view>
  22. </view>
  23. </template>
  24. <script>
  25. import redactAddress from '../components/address/redactAddress.vue'
  26. import addressList from '../components/address/addressList.vue'
  27. export default {
  28. components: {
  29. redactAddress,
  30. addressList
  31. },
  32. data() {
  33. return {
  34. title: '新增地址',
  35. type : '',
  36. }
  37. },
  38. onLoad(args) {
  39. this.type = args.type
  40. if(this.type == 'back'){
  41. this.addBtn()
  42. }
  43. },
  44. onShow() {
  45. this.getAddressList()
  46. },
  47. onPullDownRefresh() {
  48. this.getAddressList()
  49. },
  50. methods: {
  51. //获取地址列表
  52. getAddressList() {
  53. this.$refs.addressList.getAddressList()
  54. },
  55. //获取地址详情
  56. editAddress(address) {
  57. this.$refs.addressPopup.open({...address})
  58. },
  59. //返回个人中心
  60. leftClick() {
  61. uni.navigateBack(-1)
  62. },
  63. //添加和修改地址
  64. saveOrUpdate(addressDetail) {
  65. // let data = {
  66. // name: addressDetail.name,
  67. // phone: addressDetail.phone,
  68. // address: addressDetail.address,
  69. // addressDetail: addressDetail.addressDetail,
  70. // defaultId: addressDetail.defaultId || '0',
  71. // latitude: addressDetail.latitude,
  72. // longitude: addressDetail.longitude
  73. // }
  74. // if (addressDetail.id) {
  75. // data.id = addressDetail.id
  76. // }
  77. this.$api(addressDetail.id ? 'updateAddress' : 'addAddress', addressDetail, res => {
  78. if (res.code == 200) {
  79. this.$refs.addressPopup.close()
  80. this.getAddressList()
  81. if(this.type == 'back'){
  82. uni.navigateBack(-1)
  83. }
  84. uni.showToast({
  85. title: '操作成功',
  86. icon: 'none'
  87. })
  88. }
  89. })
  90. },
  91. //修改默认地址
  92. editDefault(id) {
  93. this.$api('updateDefaultAddress', {
  94. addressId: id,
  95. }, res => {
  96. if (res.code == 200) {
  97. this.$refs.addressPopup.close()
  98. uni.showToast({
  99. title: '操作成功',
  100. icon: 'none'
  101. })
  102. this.getAddressList()
  103. }
  104. })
  105. },
  106. //删除地址
  107. deleteAddress(id) {
  108. let self = this
  109. uni.showModal({
  110. title: '删除地址',
  111. content: '确认删除此地址?删除后数据不可恢复',
  112. success(e) {
  113. if(e.confirm){
  114. self.$api('deleteAddress', {
  115. AddressId : id
  116. }, res => {
  117. if (res.code == 200) {
  118. uni.showToast({
  119. title: '删除成功',
  120. icon: 'none'
  121. })
  122. self.getAddressList()
  123. }
  124. })
  125. }
  126. }
  127. })
  128. },
  129. //点击新增按钮
  130. addBtn() {
  131. this.title = '新增地址'
  132. this.$refs.addressPopup.open({ //初始化数据
  133. userName: '',
  134. userPhone: '',
  135. area: '',
  136. address: '',
  137. defaultId: '',
  138. latitude: '',
  139. longitude: '',
  140. })
  141. },
  142. }
  143. }
  144. </script>
  145. <style lang="scss" scoped>
  146. .address {
  147. width: 750rpx;
  148. margin: 0rpx auto;
  149. background: #F5F5F5;
  150. box-sizing: border-box;
  151. min-height: 100vh;
  152. .address-list {
  153. padding: 40rpx 20rpx 120rpx 20rpx;
  154. }
  155. .add-btn {
  156. position: fixed;
  157. display: flex;
  158. justify-content: center;
  159. align-items: center;
  160. left: 0;
  161. bottom: 0;
  162. width: 750rpx;
  163. height: 100rpx;
  164. background: white;
  165. .btn {
  166. display: flex;
  167. align-items: center;
  168. justify-content: center;
  169. width: 85%;
  170. height: 80rpx;
  171. border-radius: 40rpx;
  172. color: white;
  173. text-align: center;
  174. font-size: 28rpx;
  175. background: $uni-color;
  176. }
  177. }
  178. }
  179. @media all and (min-width: 961px) {
  180. .add-btn {
  181. left: 50% !important;
  182. transform: translateX(-50%);
  183. }
  184. }
  185. //选择位置地图样式
  186. :deep(.uni-system-choose-location) {
  187. z-index: 99999 !important;
  188. }
  189. </style>