景徳镇旅游微信小程序
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

10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
9 months ago
10 months ago
10 months ago
10 months ago
9 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
9 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 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>