Files
PC-202306242200\Administrator 1c24452b6c first commit
2026-03-28 23:10:55 +08:00

268 lines
5.3 KiB
Vue

<template>
<view class="address">
<wd-navbar title="地址管理" safeAreaInsetTop left-arrow @click-left="back"></wd-navbar>
<z-paging ref="paging" v-model="dataList" use-page-scroll @query="queryList">
<view style="padding: 30rpx">
<view class="address-a" @click="back_A(item)" v-for="(item, index) in dataList" :key="index">
<view class="top">
<view class="top-a">
<view>{{ item.receiverName }}</view>
<view>{{ item.receiverPhone }}</view>
</view>
<view class="top-b">{{ item.receiverArea }} {{ item.receiverAddress }}</view>
</view>
<view class="bottom">
<view class="bottom-r">
<view @click.stop="deleAddress(item)">删除</view>
<view style="margin-left: 50rpx" @click.stop="tn(`./add?id=${item.id}`)">编辑</view>
<view @click.stop="copyAddress(item)" style="margin: 0 50rpx">复制</view>
</view>
</view>
</view>
</view>
</z-paging>
<view class="bottom-btn">
<view class="button-a" @click="tn('./add')">新增收货地址</view>
</view>
</view>
</template>
<script setup lang="ts">
import api from '@/api/index';
import { ref, computed } from 'vue';
import { onLoad, onShow } from '@dcloudio/uni-app';
const paging = ref(null);
const type = ref(null);
const dataList = ref([]);
onLoad((options: any) => {
type.value = options.type;
});
onShow(() => {
paging.value.reload();
});
const queryList = (pageNo, pageSize) => {
api.addressPage({ pageNo, pageSize })
.then((res: any) => {
paging.value.complete(res.list);
})
.catch((res) => {
paging.value.complete(false);
});
};
const back = () => {
uni.navigateBack();
};
const tn = (e) => {
uni.navigateTo({
url: e
});
};
const back_A = (e) => {
if (type.value == 1) {
uni.$emit('address', e);
uni.navigateBack();
} else {
return;
}
};
const deleAddress = (data) => {
uni.showModal({
title: '提示',
content: '是否确认删除?',
success: (res) => {
if (res.confirm) {
api.addressDel({ id: data.id }).then((res) => {
paging.value.reload();
});
}
}
});
};
const copyAddress = (data) => {
let aaa = `收货人:${data.receiverName}
手机号码:${data.receiverPhone}
所在地区:${data.receiverArea}
详细地址:${data.receiverAddress}`;
uni.setClipboardData({
data: aaa,
success: function () {
console.log('success');
}
});
};
// export default {
// data() {
// return {
// list: [],
// type: null
// };
// },
// onLoad(option) {
// this.type = option.type;
// this.getList();
// },
// methods: {
// getList() {
// // addressList().then((res) => {
// // this.list = res;
// // });
// },
// copyAddress(data) {
// let aaa = `收货人:${data.realName}
// 手机号码:${data.phone}
// 所在地区:${data.province}${data.city}${data.district}
// 详细地址:${data.detail}`;
// uni.setClipboardData({
// data: aaa,
// success: function () {
// console.log('success');
// }
// });
// },
// back_A(e) {
// if (this.type == 1) {
// uni.$emit('address', e);
// uni.navigateBack();
// } else {
// return;
// }
// },
// deleAddress(data) {
// uni.showModal({
// title: '提示',
// content: '是否确认删除?',
// success: (res) => {
// if (res.confirm) {
// addressDel({ id: data.id }).then((res) => {
// this.getList();
// });
// }
// }
// });
// },
// tn(e) {
// wx.chooseAddress({
// success: (res) => {
// addressSave({
// realName: res.userName,
// phone: res.telNumber,
// province: res.provinceName,
// city: res.cityName,
// district: res.countyName,
// detail: res.detailInfo
// }).then((res) => {
// this.getList();
// });
// console.log(res);
// },
// fail: (err) => {
// console.log(err);
// }
// });
// }
// }
// };
</script>
<style lang="scss" scoped>
.address {
.address-a {
width: 100%;
background: #ffffff;
box-shadow: 0px 2rpx 21rpx 0px rgba(184, 184, 184, 0.35);
border-radius: 17rpx;
margin-bottom: 30rpx;
.top {
padding: 40rpx;
border-bottom: 1rpx solid #f3f3f3;
.top-a {
display: flex;
align-items: center;
justify-content: space-between;
font-size: 30rpx;
font-weight: bold;
color: #222222;
margin-bottom: 45rpx;
}
.top-b {
font-size: 30rpx;
font-weight: bold;
color: #999999;
}
}
.bottom {
padding: 35rpx;
display: flex;
align-items: center;
justify-content: space-between;
.bottom-che {
display: flex;
align-items: center;
image {
width: 32rpx;
height: 32rpx;
margin-right: 10rpx;
}
font-size: 24rpx;
font-weight: bold;
color: #222222;
}
.bottom-r {
font-size: 26rpx;
font-weight: bold;
color: #999999;
display: flex;
align-items: center;
}
}
}
.bottom-btn {
width: 100%;
height: 150rpx;
padding: 30rpx;
background-color: #ffffff;
position: fixed;
bottom: 0;
left: 0;
border-radius: 20rpx 20rpx 0 0;
box-shadow: 0px 6rpx 16rpx 2rpx rgba(170, 170, 170, 0.35);
display: flex;
align-items: center;
justify-content: center;
.button-a {
width: 690rpx;
height: 90rpx;
background: #799675;
border-radius: 15rpx;
text-align: center;
font-size: 30rpx;
color: #ffffff;
line-height: 90rpx;
}
}
}
</style>