123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- <template>
- <view class="container">
- <view class="address-list" v-for="(item, index) in addressList" :key="item.id">
- <view class="address-item" @click="handleClick" @longpress="handleLongPress(item)">
- <view class="left">
- <u-avatar :text="item.name ? item.name.slice(0, 1) : 'U'" fontSize="18" randomBgColor></u-avatar>
- </view>
- <view class="middle">
- <view class="info">
- <view class="name">{{ item.name }}</view>
- <view class="mobile">{{ item.mobile }}</view>
- <u-tag class="type" v-if="item.type === 1" text="默认" plain size="mini" type="success"></u-tag>
- </view>
- <view class="detail">
- <u--text :lines="2" size="14" color="#939393" :text="item.detailAddress"></u--text>
- </view>
- </view>
- <navigator class="right" :url="`/pages/address/update?addressId=${item.id}`" open-type="navigate" hover-class="none">
- <u-icon name="edit-pen" size="28"></u-icon>
- </navigator>
- </view>
- </view>
- <navigator class="fixed-btn-box" url="/pages/address/create" open-type="navigate" hover-class="none">
- <u-button type="primary" size="large" text="新增地址"></u-button>
- </navigator>
- <u-safe-bottom customStyle="background: #ffffff"></u-safe-bottom>
- </view>
- </template>
- <script>
- import { getAddressList, deleteAddress } from '../../api/address'
- export default {
- data() {
- return {
- addressList: []
- }
- },
- onLoad() {},
- onShow() {
- this.loadAddressListData()
- },
- methods: {
- loadAddressListData() {
- getAddressList().then(res => {
- this.addressList = res.data
- })
- },
- handleLongPress(item) {
- uni.showModal({
- title: '提示',
- content: `删除收件人[${item.name}${item.mobile}]\n地址:${item.detailAddress.slice(0, 5)}......${item.detailAddress.slice(-6)}?`,
- success: res => {
- if (res.confirm) {
- deleteAddress({ id: item.id }).then(res => {
- uni.$u.toast('地址已删除')
- this.loadAddressListData();
- })
- } else if (res.cancel) {
- //console.log('用户点击取消')
- }
- }
- })
- },
- handleClick(){
- // TODO 提交订单时选择地址逻辑
- }
- }
- }
- </script>
- <style lang="scss" scoped>
- .address-list {
- .address-item {
- padding: 10rpx 0;
- border-bottom: $custom-border-style;
- @include flex-space-between;
- .left {
- margin: 20rpx;
- }
- .middle {
- flex: 1;
- margin: 20rpx;
- @include flex(column);
- .info {
- @include flex-left;
- .name {
- font-size: 30rpx;
- font-weight: 700;
- }
- .mobile {
- font-size: 28rpx;
- margin-left: 15rpx;
- }
- .type {
- margin-left: 15rpx;
- }
- }
- .detail {
- margin-top: 10rpx;
- }
- }
- .right {
- margin: 20rpx;
- }
- }
- }
- .fixed-btn-box {
- position: fixed;
- bottom: 0;
- left: 0;
- width: 750rpx;
- }
- </style>
|