|
|
- <template>
- <view class="address">
- <u-navbar :title="$t('page.address.address')" @leftClick="leftClick"></u-navbar>
- <view v-if="list.length > 0" class="address-list">
- <u-radio-group v-model="radiovalue1" placement="column">
- <view class="address-item" v-for="(item, index) in list">
- <div class="radio">
- <u-radio :name="item.id" :key="index" activeColor="#e68534"></u-radio>
- </div>
- <view class="address-info">
- <view class="user-info">
- <text>{{ item.name }}</text>
- <text>{{ item.phone }}</text>
- <u-tag v-if="item.defaultFlag == 'true'" text="默认" size="mini" type="warning"
- shape="circle"></u-tag>
- </view>
- <view class="address-detail">
- {{ item.region }}
- {{ item.detail_address }}
- </view>
- </view>
- <view class="icon">
- <u-icon name="edit-pen" color="#ccc" size="28" @click="toAdd(item.id)"></u-icon>
- <u-icon name="trash" color="#ccc" size="28" @click="del(item.id)"></u-icon>
- </view>
- </view>
- </u-radio-group>
- </view>
-
- <view v-else class="no-product">
- <view class="box">
- <view class="no-product-title">{{ $t('page.address.no-address') }}</view>
- </view>
- </view>
-
- <view class="address-bottom">
- <u-button @click="toAdd" type="primary" shape="circle" color="#ED7A2F"
- :text="$t('page.address.addAddress')"></u-button>
- </view>
-
- <u-modal :show="delShow" @confirm="confirm" ref="uModal" :title="$t('myToactTitle')" @cancel="delCancel"
- :showCancelButton="true" :confirmText="$t('page.address.confirm')" :cancelText="$t('page.address.cancel')"
- :asyncClose="true">
- <view class="slot-content">
- <rich-text :nodes="$t('page.address.del_content')"></rich-text>
- </view>
- </u-modal>
- </view>
- </template>
-
- <script>
- export default {
- data() {
- return {
- radiovalue1: '',
- total: 0,
- list: [],
- delShow: false,
- delId: ''
- }
- },
- onShow() {
- this.getAddressList();
- },
- methods: {
- getAddressList() { //获取地址列表
- this.request('addressPage', {}, {
- "pageSize": 10,
- "pageNo": 0
- }).then(res => {
- this.total = res.result.total
- this.list = res.result.records;
- })
- },
- toAdd(id) {
- uni.navigateTo({
- url: '/pages/user/address/addAddres?id=' + id
- })
- },
- leftClick() {
- uni.switchTab({
- url: '/pages/user/user'
- })
- },
- del(id) {
- this.delShow = true;
- this.delId = id
- },
- confirm() {
- this.request('deleAddress', {
- id: this.delId
- }).then(res => {
- this.delShow = false;
- if (res.code == 200) {
- this.getAddressList();
- uni.$u.toast(this.$t('success-operation'))
- }
- })
- },
- delCancel() {
- this.delShow = false;
- }
- }
- }
- </script>
-
- <style lang="scss" scoped>
- .address {
- .address-list {
- margin-top: 54px;
-
- .address-item {
- display: flex;
- justify-content: space-between;
- background: white;
- border-radius: 10rpx;
- box-sizing: border-box;
- padding: 15px 15px;
- font-size: 25rpx;
- border-bottom: 1px solid #eaeaea;
-
- &:nth-last-child(1) {
- border: none;
- }
-
- .radio {
- display: flex;
- align-items: center;
- }
-
- .address-info {
- width: calc(100% - 60px);
-
- .user-info {
- display: flex;
- align-items: center;
-
- text {
- margin-right: 10rpx;
- }
- }
- }
-
- .icon {
- display: flex;
- width: 70px;
- justify-content: space-between;
- }
- }
- }
-
- .no-product {
- height: calc(100vh - 124px);
- display: flex;
- justify-content: center;
- align-items: center;
- box-sizing: border-box;
- padding: 0px 15px;
-
- .box {
- font-size: 26rpx;
- text-align: center;
-
- .to-home {
- padding: 20rpx 140rpx;
- border: 1px solid #ccc;
- border-radius: 5px;
- text-align: center;
- margin: 20rpx 0px;
- }
- }
- }
-
- .address-bottom {
- display: flex;
- align-items: center;
- position: fixed;
- left: 0;
- bottom: 0;
- width: 100%;
- height: 80px;
- background: white;
- box-shadow: -1px -1px 1px rgba(0, 0, 0, .1);
- box-sizing: border-box;
- padding: 0px 15px;
-
- &::v-deep .u-button {
- height: 70%;
- }
- }
- }
- </style>
|