|
|
@@ -18,7 +18,7 @@
|
|
|
<ul class="pay-store-list">
|
|
|
<li class="ps-item" v-for="item in orderData">
|
|
|
<p class="ps-store-name">
|
|
|
- <span class="inline-block text-ellipse seller-name"><span>卖 家:</span>{{item.storeName}} <i class="iconfont icon-arrow-right"></i></span>
|
|
|
+ <nuxt-link tag="span" :to="`/mobile/shop/${item.storeid}`" class="inline-block text-ellipse seller-name"><span>卖 家:</span>{{item.storeName}} <i class="iconfont icon-arrow-right"></i></nuxt-link>
|
|
|
<a class="com-mobile-link" @click.stop="linkSaler(item)"><i class="iconfont icon-kefu1"></i>联系卖家</a>
|
|
|
</p>
|
|
|
<div class="ps-goods-info" @click="showDetailList(item.goods)">
|
|
|
@@ -264,20 +264,59 @@
|
|
|
<modal-wrapper :showModal="showAddrModal"
|
|
|
:title="'收货地址'"
|
|
|
@closeAction="showAddrModal = false">
|
|
|
- <ul class="addr-list">
|
|
|
- <li v-for="(addr, index) in addressData" :class="{active: selectedAddressIndex === index}" @click="setAddressCheck(index)">
|
|
|
- <div class="info-line">
|
|
|
- <label class="mobile-cart-check" :class="{active: selectedAddressIndex === index}">
|
|
|
- <input type="checkbox">
|
|
|
- </label>
|
|
|
- <span class="name inline-block text-ellipse">{{addr.name}}</span>
|
|
|
- <span class="tel inline-block text-ellipse">{{addr.tel}}</span>
|
|
|
- <i class="inline-block" v-if="addr.num === 1">默认地址</i>
|
|
|
- </div>
|
|
|
- <p>{{addr.area + addr.detailAddress}}</p>
|
|
|
- </li>
|
|
|
- </ul>
|
|
|
+ <template v-if="!editAddr">
|
|
|
+ <div class="addr-list-wrap">
|
|
|
+ <ul class="addr-list">
|
|
|
+ <li v-for="(addr, index) in addressData" :class="{active: selectedAddressIndex === index}" @click="setAddressCheck(index)">
|
|
|
+ <div class="info-wrap">
|
|
|
+ <div class="info-line">
|
|
|
+ <label class="mobile-cart-check" :class="{active: selectedAddressIndex === index}">
|
|
|
+ <input type="checkbox">
|
|
|
+ </label>
|
|
|
+ <span class="name inline-block text-ellipse">{{addr.name}}</span>
|
|
|
+ <span class="tel inline-block text-ellipse">{{addr.tel}}</span>
|
|
|
+ <i class="inline-block" v-if="addr.num === 1">默认地址</i>
|
|
|
+ </div>
|
|
|
+ <p>{{addr.area + addr.detailAddress}}</p>
|
|
|
+ </div>
|
|
|
+ <div class="edit-addr-area">
|
|
|
+ <a class="inline-block addr-btn" @click.stop="addAddress(addr)"><i class="iconfont icon-xinzeng"></i>编辑</a>
|
|
|
+ <a class="inline-block addr-btn" @click.stop="deleteAddress(addr)"><i class="iconfont icon-lajitong"></i>删除</a>
|
|
|
+ </div>
|
|
|
+ </li>
|
|
|
+ </ul>
|
|
|
+ <button class="add-addr-btn" @click="addAddress()"><i class="iconfont icon-add"></i>添加新地址</button>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ <address-edit v-else="editAddr" :inFix="true" :data="currentAddress" :isPersonal="true" :isSend="false" @isEditEvent="editClick"></address-edit>
|
|
|
</modal-wrapper>
|
|
|
+ <!-- <div v-if="showAddrModal" class="mobile-hover-pager">
|
|
|
+ <template v-if="!editAddr">
|
|
|
+ <div class="addr-list-wrap">
|
|
|
+ <ul class="addr-list">
|
|
|
+ <li v-for="(addr, index) in addressData" :class="{active: selectedAddressIndex === index}" @click="setAddressCheck(index)">
|
|
|
+ <div class="info-wrap">
|
|
|
+ <div class="info-line">
|
|
|
+ <label class="mobile-cart-check" :class="{active: selectedAddressIndex === index}">
|
|
|
+ <input type="checkbox">
|
|
|
+ </label>
|
|
|
+ <span class="name inline-block text-ellipse">{{addr.name}}</span>
|
|
|
+ <span class="tel inline-block text-ellipse">{{addr.tel}}</span>
|
|
|
+ <i class="inline-block" v-if="addr.num === 1">默认地址</i>
|
|
|
+ </div>
|
|
|
+ <p>{{addr.area + addr.detailAddress}}</p>
|
|
|
+ </div>
|
|
|
+ <div class="edit-addr-area">
|
|
|
+ <a class="inline-block addr-btn" @click.stop="addAddress(addr)"><i class="iconfont icon-xinzeng"></i>编辑</a>
|
|
|
+ <a class="inline-block addr-btn" @click.stop="deleteAddress(addr)"><i class="iconfont icon-lajitong"></i>删除</a>
|
|
|
+ </div>
|
|
|
+ </li>
|
|
|
+ </ul>
|
|
|
+ <button class="add-addr-btn" @click="addAddress()"><i class="iconfont icon-add"></i>添加新地址</button>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ <address-edit v-else="editAddr" :inFix="false" :data="currentAddress" :isPersonal="true" :isSend="false" @isEditEvent="editClick"></address-edit>
|
|
|
+ </div>-->
|
|
|
<!-- 选择地址弹框end -->
|
|
|
|
|
|
<!-- 选择自提点弹框start -->
|
|
|
@@ -286,14 +325,16 @@
|
|
|
@closeAction="showTakeSelfModal = false">
|
|
|
<ul class="addr-list takeself-list">
|
|
|
<li v-for="(takeself, index) in takeSelfData[currentTakeSelfStoreId]" @click="checkTakeSelf(index)" :class="{active: index === 0}">
|
|
|
- <div class="info-line">
|
|
|
- <label class="mobile-cart-check" :class="{active: index === 0}">
|
|
|
- <input type="checkbox">
|
|
|
- </label>
|
|
|
- <span class="name inline-block text-ellipse">{{takeself.takename}}</span>
|
|
|
+ <div class="info-wrap">
|
|
|
+ <div class="info-line">
|
|
|
+ <label class="mobile-cart-check" :class="{active: index === 0}">
|
|
|
+ <input type="checkbox">
|
|
|
+ </label>
|
|
|
+ <span class="name inline-block text-ellipse">{{takeself.takename}}</span>
|
|
|
+ </div>
|
|
|
+ <p><span>地址:</span>{{takeself.area + takeself.detailAddress}}</p>
|
|
|
+ <p><span>营业时间:</span>{{takeself.businesstime}}</p>
|
|
|
</div>
|
|
|
- <p><span>地址:</span>{{takeself.area + takeself.detailAddress}}</p>
|
|
|
- <p><span>营业时间:</span>{{takeself.businesstime}}</p>
|
|
|
</li>
|
|
|
</ul>
|
|
|
</modal-wrapper>
|
|
|
@@ -303,7 +344,7 @@
|
|
|
</div>
|
|
|
</template>
|
|
|
<script>
|
|
|
- import { LinkUser, ModalWrapper, BottomModalWrapper } from '~components/mobile/base'
|
|
|
+ import { LinkUser, ModalWrapper, BottomModalWrapper, AddressEdit } from '~components/mobile/base'
|
|
|
import { RemindBox } from '~components/mobile/common'
|
|
|
import { goodsPurchaseOperate } from '~utils/mixin'
|
|
|
export default {
|
|
|
@@ -336,7 +377,9 @@
|
|
|
// 选中的地址
|
|
|
selectedAddressIndex: 0,
|
|
|
// 正在修改自提点的店铺id
|
|
|
- currentTakeSelfStoreId: ''
|
|
|
+ currentTakeSelfStoreId: '',
|
|
|
+ editAddr: false,
|
|
|
+ currentAddress: {}
|
|
|
}
|
|
|
},
|
|
|
mixins: [goodsPurchaseOperate],
|
|
|
@@ -344,7 +387,8 @@
|
|
|
LinkUser,
|
|
|
ModalWrapper,
|
|
|
RemindBox,
|
|
|
- BottomModalWrapper
|
|
|
+ BottomModalWrapper,
|
|
|
+ AddressEdit
|
|
|
},
|
|
|
fetch ({ store, params }) {
|
|
|
return Promise.all([
|
|
|
@@ -615,6 +659,7 @@
|
|
|
},
|
|
|
setAddressCheck (index) {
|
|
|
if (this.selectedAddressIndex === index) {
|
|
|
+ this.showAddrModal = false
|
|
|
return
|
|
|
}
|
|
|
this.selectedAddressIndex = index
|
|
|
@@ -622,10 +667,9 @@
|
|
|
this.getDeliveryRule()
|
|
|
},
|
|
|
openAddrModal () {
|
|
|
- if (this.addressData && this.addressData.length) {
|
|
|
- this.showAddrModal = true
|
|
|
- } else {
|
|
|
- this.setRemindText('暂未设置收货地址,请前往【我】->【收货地址信息】进行维护】')
|
|
|
+ this.showAddrModal = true
|
|
|
+ if (!this.selectedAddress.id) {
|
|
|
+ this.editAddr = true
|
|
|
}
|
|
|
},
|
|
|
// 配送规则校验
|
|
|
@@ -641,7 +685,7 @@
|
|
|
// 收货地址校验
|
|
|
checkAddress () {
|
|
|
if (!this.selectedAddress || !this.selectedAddress.id) {
|
|
|
- this.setRemindText('暂未设置收货地址,请前往【我】->【收货地址信息】进行维护】')
|
|
|
+ this.setRemindText('请选择收货地址')
|
|
|
return false
|
|
|
} else if (this.selectedAddress.area.indexOf('香港') > -1) {
|
|
|
if (this.payData.currency === 'RMB') {
|
|
|
@@ -824,6 +868,31 @@
|
|
|
console.log(err)
|
|
|
this.setRemindText(err.response.data || '提交订单失败')
|
|
|
})
|
|
|
+ },
|
|
|
+ reloadAddress () {
|
|
|
+ this.$store.dispatch('userCenter/loadAcceptAddress', {send: false})
|
|
|
+ },
|
|
|
+ editClick (obj) {
|
|
|
+ if (obj.id) {
|
|
|
+ this.reloadAddress()
|
|
|
+ }
|
|
|
+ this.editAddr = false
|
|
|
+ },
|
|
|
+ addAddress (item) {
|
|
|
+ if (!item) {
|
|
|
+ this.currentAddress = {}
|
|
|
+ } else {
|
|
|
+ this.currentAddress = item
|
|
|
+ }
|
|
|
+ this.editAddr = true
|
|
|
+ },
|
|
|
+ deleteAddress (item) {
|
|
|
+ this.$http.put(`/trade/address/delete/${item.id}`).then(res => {
|
|
|
+ this.setRemindText('删除成功')
|
|
|
+ this.reloadAddress()
|
|
|
+ }, err => {
|
|
|
+ this.setRemindText(err.response.data || '删除失败,系统错误')
|
|
|
+ })
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -1260,9 +1329,12 @@
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- .addr-list {
|
|
|
+ .addr-list-wrap {
|
|
|
background: #f1f3f7;
|
|
|
padding: .19rem 0;
|
|
|
+ }
|
|
|
+ .addr-list {
|
|
|
+ background: #f1f3f7;
|
|
|
li {
|
|
|
margin-bottom: .19rem;
|
|
|
position: relative;
|
|
|
@@ -1270,7 +1342,9 @@
|
|
|
margin-bottom: 0;
|
|
|
}
|
|
|
background: #fff;
|
|
|
- padding: .35rem .25rem .28rem;
|
|
|
+ .info-wrap {
|
|
|
+ padding: .35rem .25rem .28rem;
|
|
|
+ }
|
|
|
.info-line {
|
|
|
font-size: .3rem;
|
|
|
color: #666;
|
|
|
@@ -1310,6 +1384,41 @@
|
|
|
color: #666;
|
|
|
}
|
|
|
}
|
|
|
+ .edit-addr-area {
|
|
|
+ border-top: 1px solid #d9d9d9;
|
|
|
+ .addr-btn {
|
|
|
+ width: 50%;
|
|
|
+ height: .8rem;
|
|
|
+ line-height: .8rem;
|
|
|
+ color: #333;
|
|
|
+ text-align: center;
|
|
|
+ i {
|
|
|
+ font-size: .34rem;
|
|
|
+ margin-right: .1rem;
|
|
|
+ }
|
|
|
+ &:first-child {
|
|
|
+ border-right: 1px solid #d9d9d9;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .add-addr-btn {
|
|
|
+ /*position: absolute;*/
|
|
|
+ /*bottom: .26rem;*/
|
|
|
+ /*left: .52rem;*/
|
|
|
+ width: 5.67rem;
|
|
|
+ text-align: center;
|
|
|
+ display: block;
|
|
|
+ margin: .26rem auto .07rem;
|
|
|
+ height: .77rem;
|
|
|
+ line-height: .77rem;
|
|
|
+ background: #3f84f6;
|
|
|
+ border-radius: .08rem;
|
|
|
+ color: #fff;
|
|
|
+ font-size: .32rem;
|
|
|
+ i {
|
|
|
+ margin-right: .08rem;
|
|
|
}
|
|
|
}
|
|
|
.takeself-list {
|