152 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			Vue
		
	
	
	
			
		
		
	
	
			152 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			Vue
		
	
	
	
<template>
 | 
						|
	<page-meta :page-font-size="fontValue+'px'" :root-font-size="fontValue+'px'"></page-meta>
 | 
						|
  <view class="address-list">
 | 
						|
    <Navbar title="我的地址" :showRightText="true" :isBack="false" :text="'新增地址'" @clickIcon="addAddress"/>
 | 
						|
	<view v-if="addressList.length == 0" class="flex justify-center align-center" style="height: 50vh">
 | 
						|
	  <u-empty icon="../../../static/images/not_order.png" text="暂无数据" textColor="#000" />
 | 
						|
	</view> 
 | 
						|
    <view v-for="(item, index) in addressList" :key="index" class="address-item">
 | 
						|
      <view class="address-info">
 | 
						|
        <text class="address-text">{{ item.addrFullName }} {{item.detailAddr}}</text>
 | 
						|
        <view class="contact-info">
 | 
						|
		  <view @click="changeDefault(item)" style="margin-right: 20rpx;font-size: 24rpx;border: 1px solid #ff8ba0;color: #ff8ba0;padding: 4rpx;border-radius: 8rpx;background: #fff2f8;">
 | 
						|
			   {{item.ifDefault=="1"?"默认":"设为默认"}}
 | 
						|
		  </view>
 | 
						|
          <text class="contact-text">{{ item.userName }}</text>
 | 
						|
          <text class="contact-text">{{ item.mobile }}</text>
 | 
						|
        </view>
 | 
						|
      </view>
 | 
						|
      <u-icon name="edit-pen-fill" color="#c8c9cc" size="22" @click="handleEdit(item)"></u-icon>
 | 
						|
    </view>
 | 
						|
  </view>
 | 
						|
</template>
 | 
						|
 | 
						|
<script>
 | 
						|
	import { queryCustAddrApi,updateDefaultAddrApi } from '@/api/mine/address.js';
 | 
						|
	
 | 
						|
export default {
 | 
						|
  data() {
 | 
						|
    return {
 | 
						|
		fontValue:uni.getStorageSync('fontSize') || 8,
 | 
						|
      addressList: [
 | 
						|
    //     {
 | 
						|
    //       address: '府前西街与站前北街交叉口南200米',
 | 
						|
    //       name: '冯先生1',id: '1',
 | 
						|
    //       phone: '153****5876',
 | 
						|
		  // ifDefault:"1"
 | 
						|
    //     },
 | 
						|
    //     {
 | 
						|
    //       address: '怡馨家园30号楼(近达人街商城)',
 | 
						|
    //       name: '冯先生',id: '2',ifDefault:"0",
 | 
						|
    //       phone: '153****5876'
 | 
						|
    //     },
 | 
						|
    //     {
 | 
						|
    //       address: '西辛南区46号楼2单元101室',
 | 
						|
    //       name: '冯先生',id: '3',ifDefault:"0",
 | 
						|
    //       phone: '153****5876'
 | 
						|
    //     }
 | 
						|
      ]
 | 
						|
    }
 | 
						|
  },
 | 
						|
  onLoad() {
 | 
						|
  	
 | 
						|
  },
 | 
						|
  onShow(){
 | 
						|
	  this.queryCustAddrList()
 | 
						|
  },
 | 
						|
  methods: {
 | 
						|
	  async queryCustAddrList() {
 | 
						|
		try {
 | 
						|
				let param = {}
 | 
						|
				const res = await queryCustAddrApi(param)
 | 
						|
				console.log('?? ~ getList ~ res:', res) 
 | 
						|
				this.addressList = res.rows;
 | 
						|
		} catch (error) {
 | 
						|
				console.log(error)
 | 
						|
		}
 | 
						|
	  },
 | 
						|
	  changeDefault(item){
 | 
						|
		  console.log(item)
 | 
						|
		  if(item.ifDefault==2){
 | 
						|
			  this.updateDefaultAddr(item)
 | 
						|
		  }
 | 
						|
		  
 | 
						|
	  },
 | 
						|
	  async updateDefaultAddr(item) {
 | 
						|
	  		try {
 | 
						|
	  				let param = {
 | 
						|
	  					"addrId":item.addrId,
 | 
						|
	  					"userId":uni.getStorageSync('userId')
 | 
						|
	  				}
 | 
						|
	  				const res = await updateDefaultAddrApi(param)
 | 
						|
	  				if(res.code==200){
 | 
						|
						uni.$u.toast(`操作成功!`)
 | 
						|
						this.queryCustAddrList()
 | 
						|
					}else{
 | 
						|
						uni.$u.toast(`操作失败!`)
 | 
						|
					}
 | 
						|
	  		} catch (error) {
 | 
						|
	  				console.log(error)
 | 
						|
	  		}
 | 
						|
	  },
 | 
						|
    handleEdit(address) {
 | 
						|
      // 处理编辑事件
 | 
						|
      // uni.$u.toast(`编辑第${index + 1}个地址`)
 | 
						|
		uni.navigateTo({
 | 
						|
		  // url: `/pages/mine/me/upAddress?address=${encodeURIComponent(JSON.stringify(address))}`
 | 
						|
		  url: `/pages/mine/me/upAddress?address=${JSON.stringify(address)}`
 | 
						|
		})
 | 
						|
    },
 | 
						|
    addAddress() {
 | 
						|
      uni.navigateTo({
 | 
						|
        url: `/pages/mine/me/upAddress`
 | 
						|
      })
 | 
						|
    },
 | 
						|
	
 | 
						|
  }
 | 
						|
}
 | 
						|
</script>
 | 
						|
 | 
						|
<style lang="scss" scoped>
 | 
						|
.address-list {
 | 
						|
  min-height: 100vh;
 | 
						|
  background-color: #f8f8f8;
 | 
						|
  padding: 30rpx;
 | 
						|
}
 | 
						|
 | 
						|
.address-item {
 | 
						|
  background-color: #ffffff;
 | 
						|
  border-radius: 8rpx;
 | 
						|
  padding: 30rpx;
 | 
						|
  margin-bottom: 20rpx;
 | 
						|
  display: flex;
 | 
						|
  justify-content: space-between;
 | 
						|
  align-items: center;
 | 
						|
}
 | 
						|
 | 
						|
.address-info {
 | 
						|
  flex: 1;
 | 
						|
 | 
						|
  .address-text {
 | 
						|
    font-size: 26rpx;
 | 
						|
    color: #333333;
 | 
						|
    line-height: 1.5;
 | 
						|
   
 | 
						|
  }
 | 
						|
 | 
						|
  .contact-info {
 | 
						|
	margin-top: 10rpx;
 | 
						|
    display: flex;
 | 
						|
    align-items: center;
 | 
						|
 | 
						|
    .contact-text {
 | 
						|
      font-size: 24rpx;
 | 
						|
      color: #999999;
 | 
						|
 | 
						|
      &:first-child {
 | 
						|
        margin-right: 20rpx;
 | 
						|
      }
 | 
						|
    }
 | 
						|
  }
 | 
						|
}
 | 
						|
</style> |