ylj20011123 6c2aab2818 update
2025-04-21 10:21:14 +08:00

175 lines
4.0 KiB
Vue

<template>
<div class="page-body">
<div v-if="addList.length > 0">
<radio-group :value="addressId" @change="checkAddress">
<view class="address-card" v-for="n in addList" :key="n.MEMBERADDRESS_ID"
@click="checkOrEdit(n.MEMBERADDRESS_ID)">
<view style="flex: 1.5; text-align: right; padding-left: 16rpx" v-if="pageMsg.type !== 0">
<radio :value="n.MEMBERADDRESS_ID" color="#CAA97F"></radio>
</view>
<view class="card-left">
<view class="address-title">
{{ n.ADDRESS + n.DOORPLATE }}
<text class="tip-moren" v-if="n.ISDEFAULT === 1">默认</text>
</view>
<view class="address-other">
{{ n.USER_NAME + n.USER_SEX_TEXT + " " + n.MOBILEPHONE }}
</view>
</view>
<view class="card-right" @click.stop="editAddress(n.MEMBERADDRESS_ID)">
<image src="https://eshangtech.com/ShopICO/icos/address-edit.png" style="width: 28rpx; height: 28rpx" />
</view>
</view>
</radio-group>
</div>
<navigator url="/pages/myAddress/newAdd/index" class="btn">新增收货地址</navigator>
<CustomLoading :visible="isLoading" />
</div>
</template>
<script>
import { mapGetters, mapMutations } from "vuex";
import CustomLoading from "../../../components/customLoading.vue";
export default {
data() {
return {
pageMsg: {
type: 0,
},
addList: [],
addressId: 0, // 被选择的地址
isLoading: false
};
},
components: { CustomLoading },
computed: {
...mapGetters(["user"]),
},
methods: {
...mapMutations({
setAddress: "orderAddress",
}),
getList() {
let _this = this;
this.isLoading = true
this.$api
.getCoop({
action_type: "GetAddressList",
})
.then(function (res) {
if (res.ResultCode === "100") {
_this.addList = res.Data.List;
}
_this.isLoading = false
});
},
editAddress(id) {
uni.navigateTo({ url: "/pages/myAddress/newAdd/index?id=" + id });
},
checkOrEdit(n) {
if (this.pageMsg.type === 0) {
this.editAddress(n);
} else {
this.addressId = Number(n);
this.setAddress(this.addressId);
uni.navigateBack({ delta: 1 });
}
},
checkAddress(event) {
this.addressId = Number(event.mp.detail);
this.setAddress(this.addressId);
uni.navigateBack({ delta: 1 });
},
},
onUnload() {
if (this.addList.length === 0) {
this.setAddress("");
}
this.addressId = 0;
this.pageMsg.type = 0;
},
onShow() {
this.getList();
},
onLoad(option) {
if (option.type) {
this.addressId = Number(option.id);
this.pageMsg.type = option.type;
}
// this.getList()
},
};
</script>
<style lang="stylus" scoped>
.page-body {
padding: 24rpx 0;
}
.address-card {
display: flex;
align-items: center;
padding: 24rpx 0;
background: #fff;
}
.address-card+.address-card {
margin-top: 16rpx;
}
.card-left {
flex: 8;
padding-left: 32rpx;
}
.address-title {
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
overflow: hidden;
text-overflow: ellipsis;
padding-right: 40rpx;
font-size: 26rpx;
}
.address-other {
font-size: 24rpx;
color: #a1a1a1;
}
.tip-moren {
font-size: 18rpx;
color: #ffffff;
width: 40rpx;
text-align: center;
background: linear-gradient(to right, #A17356, #D8AA8B);
border-radius: 2rpx;
margin-left: 8rpx;
height: 26rpx;
display: inline-block;
vertical-align: middle;
}
.card-right {
flex: 1.5;
padding-right: 32rpx;
text-align: right;
}
.btn {
height: 88rpx;
width: 90%;
line-height: 88rpx;
background: linear-gradient(to right, #1f1f1f, #62605f);
color: #f0dccf;
text-align: center;
font-size: 30rpx;
position: fixed;
bottom: 32rpx;
transform: translateX(-50%);
left: 50%;
border-radius: 12rpx;
}
</style>