Files
ysdH5/pages/site/index.vue
2023-06-21 17:19:58 +08:00

207 lines
6.8 KiB
Vue

<template>
<view>
<view class="address-list" v-if="addressArr.length">
<view class="address" v-for="(item,index) in addressArr" :key="index">
<view class="address-name">{{ item.name }}<text>{{ item.mobile }}</text></view>
<view class="address-info">
<block v-if="type == 'selectAddress'">
<text class="address-info-tag" v-if="item.is_default">默认</text>
</block>
{{ item.all_address }}
</view>
<view class="address-tool" v-if="type == 'selectAddress'">
<view class="address-tool-btn yellow" @click="selectAddress(index)">
<image src="/static/icon/choice.png"></image>
选择地址
</view>
</view>
<view class="address-tool" v-else>
<view class="address-tool-btn" @click="addressRemove(item.id, index)">删除</view>
<navigator class="address-tool-btn" :url="'edit?type=Compile' + '&id=' + item.id">编辑</navigator>
<block v-if="item.is_default == 0">
<view class="address-tool-btn acitve" @click="addressDefault(item.id)">
<image src="/static/icon/select.png"></image>设为默认地址
</view>
</block>
<block v-else>
<view class="address-tool-btn acitve">
<image src="/static/icon/select_avtive.png"></image>默认地址
</view>
</block>
</view>
</view>
</view>
<view class="pack-center pages-hint" v-else>
<image src="https://www.lvmeimall.com/assets/mobile/img/address_null_icon.png"></image>
<view>还未添加收货地址</view>
</view>
<view class="address-footer">
<navigator url="create?type=Add">添加地址</navigator>
</view>
</view>
</template>
<script>
import { index, remove, setdef } from '@/apis/interfaces/address'
export default {
data() {
return {
type : '', //来源类型
addressArr : [] //收货地址
}
},
onLoad(options) {
this.type = options.type
},
onShow(){
// 获取地址列表
this.addressInfo();
},
methods:{
// 地址列表
addressInfo(){
index().then(res=>{
this.addressArr = res
})
},
// 删除地址
addressRemove(newid, newindex){
let list = this.addressArr
uni.showModal({
title : '提示',
content : '是否删除地址',
success : res=> {
if (res.confirm) {
uni.showLoading({
title: '删除中',
})
remove(newid).then(res=>{
this.addressArr = list
uni.showToast({
title: res,
icon : "none"
})
list.splice(newindex, 1)
uni.hideLoading()
})
}
}
})
},
// 设为默认地址
addressDefault(newid){
setdef(newid).then(res=>{
// 获取地址列表
this.addressInfo();
uni.showToast({
title: res,
icon : "none"
})
})
},
// 选择地址
selectAddress(e){
let atAdds = this.addressArr[e.currentTarget.dataset.index]
let pages = getCurrentPages()
let nowPage = pages[ pages.length - 1] // 当前页页面实例
let prevPage= pages[ pages.length - 2 ] // 上一页页面实例
prevPage.$vm.address.allAddress = atAdds // 修改上一页data里面的参数值为
uni.navigateBack({
delta: 1
})
}
}
}
</script>
<style lang="scss" scoped>
.address-list{
border-bottom: 110rpx solid transparent;
.address{
padding: 20rpx 30rpx;
border-bottom: solid 20rpx #f2f2f2;
background: white;
.address-name{
font-size: 32rpx;
line-height: 50rpx;
text{
color: #747788;
padding-left: 10rpx;
font-size: 28rpx;
}
}
.address-info{
padding-bottom: 20rpx;
display: flex;
}
.address-tool{
overflow: hidden;
.address-tool-btn{
margin-left: 30rpx;
float: right;
border:solid 1rpx #c0c0c0;
height: 46rpx;
line-height: 44rpx;
padding: 0 30rpx;
border-radius: 6rpx;
font-size: 24rpx;
&.yellow {
border:solid 1rpx #f57e32;
color: #f57e32;
padding: 0 14rpx;
height: 50rpx;
line-height: 50rpx;
}
&.acitve{
float: left;
margin-left: 0;
padding: 0;
border: none;
color: #747788;
font-size: 26rpx;
}
image {
width: 30rpx;
height: 30rpx;
margin-right: 4rpx;
vertical-align: -6rpx;
}
&.acitve image{
margin-right: 10rpx;
vertical-align: -7rpx;
}
}
}
}
}
/* footer */
.address-footer{
position: fixed;
bottom: 0;
left: 0;
right: 0;
padding-left: 30rpx;
padding-right: 30rpx;
background: white;
z-index: 9;
height: 110rpx;
navigator{
width: 100%;
line-height: 80rpx;
height: 80rpx;
margin: 15rpx 0;
text-align: center;
background: #f57e32;
font-size: 30rpx;
color: white;
border-radius: 10rpx
}
}
</style>