113 lines
2.4 KiB
Vue
113 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';
|
||
|
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>
|