111 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Vue
		
	
	
			
		
		
	
	
			111 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Vue
		
	
	
<!-- 地址卡片 -->
 | 
						|
<template>
 | 
						|
  <view
 | 
						|
    class="address-item ss-flex ss-row-between ss-col-center"
 | 
						|
    :class="[{ 'border-bottom': props.hasBorderBottom }]"
 | 
						|
  >
 | 
						|
    <view class="item-left" v-if="!isEmpty(props.item)">
 | 
						|
      <view class="area-text ss-flex ss-col-center">
 | 
						|
        <uni-tag
 | 
						|
          class="ss-m-r-10"
 | 
						|
          size="small"
 | 
						|
          custom-style="background-color: var(--ui-BG-Main); border-color: var(--ui-BG-Main); color: #fff;"
 | 
						|
          v-if="props.item.defaultStatus"
 | 
						|
          text="默认"
 | 
						|
        />
 | 
						|
        {{ props.item.areaName }}
 | 
						|
      </view>
 | 
						|
      <view class="address-text">
 | 
						|
        {{ props.item.detailAddress }}
 | 
						|
      </view>
 | 
						|
      <view class="person-text"> {{ props.item.name }} {{ props.item.mobile }} </view>
 | 
						|
    </view>
 | 
						|
    <view v-else>
 | 
						|
      <view class="address-text ss-m-b-10">请选择收货地址</view>
 | 
						|
    </view>
 | 
						|
    <slot>
 | 
						|
      <button class="ss-reset-button edit-btn" @tap.stop="onEdit">
 | 
						|
        <view class="edit-icon ss-flex ss-row-center ss-col-center">
 | 
						|
          <image :src="sheep.$url.static('/static/img/shop/user/address/edit.png')" />
 | 
						|
        </view>
 | 
						|
      </button>
 | 
						|
    </slot>
 | 
						|
  </view>
 | 
						|
</template>
 | 
						|
 | 
						|
<script setup>
 | 
						|
  /**
 | 
						|
   * 基础组件 - 地址卡片
 | 
						|
   *
 | 
						|
   * @param {String}  icon = _icon-edit    - icon
 | 
						|
   *
 | 
						|
   * @event {Function()} click			 - 点击
 | 
						|
   * @event {Function()} actionClick		 - 点击工具栏
 | 
						|
   *
 | 
						|
   * @slot 								 - 默认插槽
 | 
						|
   */
 | 
						|
  import sheep from '@/sheep';
 | 
						|
  import { isEmpty } from 'lodash-es';
 | 
						|
  const props = defineProps({
 | 
						|
    item: {
 | 
						|
      type: Object,
 | 
						|
      default() {},
 | 
						|
    },
 | 
						|
    hasBorderBottom: {
 | 
						|
      type: Boolean,
 | 
						|
      defult: true,
 | 
						|
    },
 | 
						|
  });
 | 
						|
 | 
						|
  const onEdit = () => {
 | 
						|
    sheep.$router.go('/pages/user/address/edit', {
 | 
						|
      id: props.item.id,
 | 
						|
    });
 | 
						|
  };
 | 
						|
</script>
 | 
						|
 | 
						|
<style lang="scss" scoped>
 | 
						|
  .address-item {
 | 
						|
    padding: 24rpx 30rpx;
 | 
						|
 | 
						|
    .item-left {
 | 
						|
      width: 600rpx;
 | 
						|
    }
 | 
						|
 | 
						|
    .area-text {
 | 
						|
      font-size: 26rpx;
 | 
						|
      font-weight: 400;
 | 
						|
      color: $dark-9;
 | 
						|
    }
 | 
						|
 | 
						|
    .address-text {
 | 
						|
      font-size: 32rpx;
 | 
						|
      font-weight: 500;
 | 
						|
      color: #333333;
 | 
						|
      line-height: 48rpx;
 | 
						|
    }
 | 
						|
 | 
						|
    .person-text {
 | 
						|
      font-size: 28rpx;
 | 
						|
      font-weight: 400;
 | 
						|
      color: $dark-9;
 | 
						|
    }
 | 
						|
  }
 | 
						|
 | 
						|
  .edit-btn {
 | 
						|
    width: 44rpx;
 | 
						|
    height: 44rpx;
 | 
						|
    background: $gray-f;
 | 
						|
    border-radius: 50%;
 | 
						|
 | 
						|
    .edit-icon {
 | 
						|
      width: 24rpx;
 | 
						|
      height: 24rpx;
 | 
						|
    }
 | 
						|
  }
 | 
						|
  image {
 | 
						|
    width: 100%;
 | 
						|
    height: 100%;
 | 
						|
  }
 | 
						|
</style>
 |