|
@@ -1,6 +1,6 @@
|
|
|
<template>
|
|
|
<div class="shop-cart">
|
|
|
- <van-cell :title="defaultAddr === '' ? '默认收货地址' : defaultAddr " is-link to="/addressList" />
|
|
|
+ <van-cell :title="defaultAddr === '' ? '默认收货地址' : defaultAddr" is-link to="/addressList" />
|
|
|
<div style="height: 1rem;"></div>
|
|
|
<div class="cards-list">
|
|
|
<van-checkbox-group v-model="basketIds" ref="checkboxGroup">
|
|
@@ -19,15 +19,15 @@
|
|
|
<!-- <van-tag plain type="danger">标签</van-tag> -->
|
|
|
</template>
|
|
|
<template #footer>
|
|
|
- <van-stepper :value="items.prodCount" async-change @change="(value)=>{
|
|
|
- if ( items.prodCount === value ) {
|
|
|
- return
|
|
|
+ <van-stepper :value="items.prodCount" async-change @change="(value) => {
|
|
|
+ if (items.prodCount === value) {
|
|
|
+ return
|
|
|
}
|
|
|
let count = 1
|
|
|
- if ( items.prodCount > value ) {
|
|
|
+ if (items.prodCount > value) {
|
|
|
count = -1
|
|
|
}
|
|
|
- onStepperChange(items, count, ()=>{
|
|
|
+ onStepperChange(items, count, () => {
|
|
|
items.prodCount = value
|
|
|
basketClick()
|
|
|
})
|
|
@@ -44,14 +44,15 @@
|
|
|
<div style="height: 7rem;"></div>
|
|
|
<van-submit-bar :price="totalMoney" button-text="提交订单" @submit="onSubmit">
|
|
|
<van-checkbox v-model="checked" @click="allProdSelected">全选</van-checkbox>
|
|
|
- <template #tip>
|
|
|
- 你的收货地址不支持同城送, <span @click="onClickEditAddress">修改地址</span>
|
|
|
- </template>
|
|
|
+ <a class="clear-cart" v-show="basketIds.length > 0" @click="clearCart">清空</a>
|
|
|
</van-submit-bar>
|
|
|
</div>
|
|
|
</template>
|
|
|
<script>
|
|
|
-import { shopCartInfo, totalPay, changeItem } from '@/api/shopcart'
|
|
|
+import {
|
|
|
+ shopCartInfo, totalPay,
|
|
|
+ changeItem, deleteItem
|
|
|
+} from '@/api/shopcart'
|
|
|
import { addressList } from '../api/address'
|
|
|
import emitter from '../utils/mitt'
|
|
|
export default {
|
|
@@ -63,23 +64,86 @@ export default {
|
|
|
basketIds: [],
|
|
|
totalMoney: 0,
|
|
|
addresslist: [],
|
|
|
- defaultAddr: ""
|
|
|
+ defaultAddr: "",
|
|
|
+ defaultAddrId: 0,
|
|
|
+ confirm: {
|
|
|
+ basketIds: [],
|
|
|
+ orderItem: {
|
|
|
+ prodId: 0,
|
|
|
+ skuId: 0,
|
|
|
+ prodCount: 1,
|
|
|
+ shopId: 0,
|
|
|
+ distributionCardNo: ""
|
|
|
+ },
|
|
|
+ addrId: 0,
|
|
|
+ userChangeCoupon: 0,
|
|
|
+ couponIds: []
|
|
|
+ }
|
|
|
};
|
|
|
},
|
|
|
- async created() {
|
|
|
- this.shopCartInfo = await shopCartInfo({});
|
|
|
- this.addresslist = await addressList();
|
|
|
- for (const key in this.addresslist) {
|
|
|
- if (Object.hasOwnProperty.call(this.addresslist, key)) {
|
|
|
- if ( this.addresslist[key].commonAddr === 1 ) {
|
|
|
- const result = this.addresslist[key]
|
|
|
- this.defaultAddr = result.province + " " + result.city + " "
|
|
|
- + result.area + " " + result.addr
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
+ created() {
|
|
|
+ this.init()
|
|
|
},
|
|
|
methods: {
|
|
|
+ onSubmit() {
|
|
|
+ // 标准的 B 2 C 模式
|
|
|
+ // for ( let i = 0; i < this.shopCartInfo.length; i++ ) {
|
|
|
+ // const shopCart = this.shopCartInfo[i].shopCartItemDiscounts
|
|
|
+ // for ( let n = 0; n < shopCart.length; n++ ) {
|
|
|
+ // const cart = shopCart[n].shopCartItems
|
|
|
+ // for ( let j = 0 ; j < cart.length; j++ ) {
|
|
|
+ // this.confirm.basketIds.push( cart[j].basketId )
|
|
|
+ // this.confirm.orderItem = {
|
|
|
+ // prodId: cart[j].prodId,
|
|
|
+ // skuId: cart[j].skuId,
|
|
|
+ // prodCount: cart[j].prodCount,
|
|
|
+ // shopId: cart[j].shopId,
|
|
|
+ // distributionCardNo: ""
|
|
|
+ // }
|
|
|
+ // this.confirm.addrId = this.defaultAddrId
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ for (let n = 0; n < this.basketIds; n++) {
|
|
|
+ const cart = this.shopCartInfo[0].shopCartItemDiscounts[0].shopCartItems
|
|
|
+ for (let j = 0; j < cart.length; j++) {
|
|
|
+ if ( this.basketIds[n] !== cart[j].basketId ) {
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ this.confirm.basketIds.push(cart[j].basketId)
|
|
|
+ this.confirm.orderItem = {
|
|
|
+ prodId: cart[j].prodId,
|
|
|
+ skuId: cart[j].skuId,
|
|
|
+ prodCount: cart[j].prodCount,
|
|
|
+ shopId: cart[j].shopId,
|
|
|
+ distributionCardNo: ""
|
|
|
+ }
|
|
|
+ this.confirm.addrId = this.defaultAddrId
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if ( this.basketIds.length <= 0 ) return ;
|
|
|
+ sessionStorage.setItem("confirm", JSON.stringify(this.confirm))
|
|
|
+ this.$router.push("/submitinfo")
|
|
|
+ },
|
|
|
+ async init() {
|
|
|
+ shopCartInfo({}).then(
|
|
|
+ r => {
|
|
|
+ this.shopCartInfo = r
|
|
|
+ this.basketClick()
|
|
|
+ }
|
|
|
+ )
|
|
|
+ this.addresslist = await addressList();
|
|
|
+ for (const key in this.addresslist) {
|
|
|
+ if (Object.hasOwnProperty.call(this.addresslist, key)) {
|
|
|
+ if (this.addresslist[key].commonAddr === 1) {
|
|
|
+ const result = this.addresslist[key]
|
|
|
+ this.defaultAddrId = this.addresslist[key].addrId
|
|
|
+ this.defaultAddr = result.province + " " + result.city + " "
|
|
|
+ + result.area + " " + result.addr
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
onStepperChange(items, value, callback) {
|
|
|
changeItem({
|
|
|
basketId: items.basketId,
|
|
@@ -100,9 +164,11 @@ export default {
|
|
|
const result = await totalPay(this.basketIds);
|
|
|
this.totalMoney = result.finalMoney * 100;
|
|
|
},
|
|
|
- onSubmit() {
|
|
|
- },
|
|
|
- onClickEditAddress() {
|
|
|
+ clearCart() {
|
|
|
+ deleteItem(this.basketIds).then(r => {
|
|
|
+ this.init()
|
|
|
+ emitter.emit("changeItem")
|
|
|
+ })
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -112,6 +178,11 @@ export default {
|
|
|
background-color: #fafafa;
|
|
|
height: 100%;
|
|
|
|
|
|
+ .clear-cart {
|
|
|
+ margin-left: 1rem;
|
|
|
+ color: #333;
|
|
|
+ }
|
|
|
+
|
|
|
.van-submit-bar {
|
|
|
bottom: 3.2rem;
|
|
|
}
|