glhcp/business/components/address-card/address-card.vue

103 lines
2.0 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<template>
<view
:class="['address-card', {'address-card--empty': !hasContent}]"
:style="{'border-radius': borderRadius, 'background-color': backgroundColor}"
>
<!-- Sign -->
<u-icon name="map" size="48" />
<!-- Content -->
<view class="content">
<!-- 地址信息 -->
<view v-if="hasContent">
<view class="bold">
<slot name="header"></slot>
</view>
<view class="m-t-10 lighter">
<slot name="main"></slot>
</view>
<view class="m-t-10 xs muted">
<slot name="footer"></slot>
</view>
</view>
<!-- 不存在地址 -->
<view v-else>{{ placeholder }}</view>
</view>
<!-- Action Sign -->
<u-icon v-if="action" name="arrow-right" size="30" />
</view>
</template>
<script>
/**
* @description 地址卡片
* @property {Boolean} name 名称
* @property {Boolean} action suffix图标 (默认值true)
* @property {Boolean} hasContent 是否存在内容 (默认值false)
* @property {String} placeholder 提示文字 (默认值:设置收货地址)
* @property {String} borderRadius 圆角
* @property {String} backgroundColor 背景色 (默认值:#FFFFFF)
* @example <address-card :has-content="isEmpty" :action="true" />
*/
export default {
name: 'AddressCard',
props: {
// suffix图标
action: {
type: Boolean,
default: false
},
// 是否存在内容
hasContent: {
type: Boolean,
default: false
},
// 提示文字
placeholder: {
type: String,
default: '设置收货地址'
},
// 圆角
borderRadius: {
type: String,
default: 'unset',
},
// 背景色
backgroundColor: {
type: String,
default: '#FFFFFF'
}
},
}
</script>
<style lang="scss" scoped>
.address-card {
display: flex;
align-items: flex-start;
min-height: 164rpx;
padding: 20rpx;
&--empty {
align-items: center;
}
}
.content {
flex: 1;
display: flex;
flex-direction: column;
margin: 0 20rpx;
font-size: $-font-size-md;
}
</style>