|
@@ -3,35 +3,47 @@
|
|
|
<van-search placeholder="请输入搜索关键词" />
|
|
|
<div style="height: 1rem;"></div>
|
|
|
<div class="cards-list">
|
|
|
- <div v-for="shop in shopCartInfo" :key="shop.shopId">
|
|
|
- <van-row v-for="items in shop.shopCartItemDiscounts[0].shopCartItems">
|
|
|
- <van-col span="2">
|
|
|
- <van-checkbox-group v-model="result" ref="checkboxGroup">
|
|
|
- <van-checkbox :name="items.basketId"></van-checkbox>
|
|
|
- </van-checkbox-group>
|
|
|
- </van-col>
|
|
|
- <van-col span="22">
|
|
|
- <span class="shop-name">{{ shop.shopName }}</span>
|
|
|
- <van-card :num="items.prodCount" :price="items.price"
|
|
|
- :desc="items.skuName" :title="items.prodName"
|
|
|
- :thumb="items.pic">
|
|
|
- <template #tags>
|
|
|
- <!-- 暂时没有 -->
|
|
|
- <!-- <van-tag plain type="danger">标签</van-tag> -->
|
|
|
- <!-- <van-tag plain type="danger">标签</van-tag> -->
|
|
|
- </template>
|
|
|
- <template #footer>
|
|
|
- <van-stepper v-model="value" integer />
|
|
|
- </template>
|
|
|
- </van-card>
|
|
|
- </van-col>
|
|
|
- </van-row>
|
|
|
- <van-divider />
|
|
|
- </div>
|
|
|
+ <van-checkbox-group v-model="basketIds" ref="checkboxGroup">
|
|
|
+ <div v-for="shop in shopCartInfo" :key="shop.shopId">
|
|
|
+ <van-row v-for="items in shop.shopCartItemDiscounts[0].shopCartItems" :key="items.basketId">
|
|
|
+ <van-col span="2">
|
|
|
+ <van-checkbox @click="basketClick" :name="items.basketId"></van-checkbox>
|
|
|
+ </van-col>
|
|
|
+ <van-col span="22">
|
|
|
+ <span class="shop-name">{{ shop.shopName }}</span>
|
|
|
+ <van-card :num="items.prodCount" :price="items.price" :desc="items.skuName"
|
|
|
+ :title="items.prodName" :thumb="items.pic">
|
|
|
+ <template #tags>
|
|
|
+ <!-- 暂时没有 -->
|
|
|
+ <!-- <van-tag plain type="danger">标签</van-tag> -->
|
|
|
+ <!-- <van-tag plain type="danger">标签</van-tag> -->
|
|
|
+ </template>
|
|
|
+ <template #footer>
|
|
|
+ <van-stepper :value="items.prodCount" async-change @change="(value)=>{
|
|
|
+ if ( items.prodCount === value ) {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ let count = 1
|
|
|
+ if ( items.prodCount > value ) {
|
|
|
+ count = -1
|
|
|
+ }
|
|
|
+ onStepperChange(items, count, ()=>{
|
|
|
+ items.prodCount = value
|
|
|
+ basketClick()
|
|
|
+ })
|
|
|
+ }" integer />
|
|
|
+ </template>
|
|
|
+ </van-card>
|
|
|
+ </van-col>
|
|
|
+ </van-row>
|
|
|
+ <van-divider />
|
|
|
+ </div>
|
|
|
+ </van-checkbox-group>
|
|
|
</div>
|
|
|
+ <van-empty v-if="shopCartInfo <= 0" />
|
|
|
<div style="height: 7rem;"></div>
|
|
|
<van-submit-bar :price="totalMoney" button-text="提交订单" @submit="onSubmit">
|
|
|
- <van-checkbox v-model="checked">全选</van-checkbox>
|
|
|
+ <van-checkbox v-model="checked" @click="allProdSelected">全选</van-checkbox>
|
|
|
<template #tip>
|
|
|
你的收货地址不支持同城送, <span @click="onClickEditAddress">修改地址</span>
|
|
|
</template>
|
|
@@ -39,26 +51,45 @@
|
|
|
</div>
|
|
|
</template>
|
|
|
<script>
|
|
|
-import { shopCartInfo } from '@/api/shopcart';
|
|
|
+import { shopCartInfo, totalPay, changeItem } from '@/api/shopcart'
|
|
|
+import emitter from '../utils/mitt'
|
|
|
export default {
|
|
|
data() {
|
|
|
return {
|
|
|
checked: false,
|
|
|
shopCartInfo: [],
|
|
|
value: 0,
|
|
|
- result: [],
|
|
|
+ basketIds: [],
|
|
|
totalMoney: 0
|
|
|
- }
|
|
|
+ };
|
|
|
},
|
|
|
async created() {
|
|
|
- this.shopCartInfo = await shopCartInfo({})
|
|
|
+ this.shopCartInfo = await shopCartInfo({});
|
|
|
},
|
|
|
methods: {
|
|
|
+ onStepperChange(items, value, callback) {
|
|
|
+ changeItem({
|
|
|
+ basketId: items.basketId,
|
|
|
+ prodId: items.prodId,
|
|
|
+ skuId: items.skuId,
|
|
|
+ shopId: items.shopId,
|
|
|
+ count: value,
|
|
|
+ distributionCardNo: ""
|
|
|
+ });
|
|
|
+ callback();
|
|
|
+ emitter.emit("changeItem")
|
|
|
+ },
|
|
|
+ allProdSelected() {
|
|
|
+ this.$refs.checkboxGroup.toggleAll(this.checked);
|
|
|
+ this.basketClick();
|
|
|
+ },
|
|
|
+ async basketClick() {
|
|
|
+ const result = await totalPay(this.basketIds);
|
|
|
+ this.totalMoney = result.finalMoney * 100;
|
|
|
+ },
|
|
|
onSubmit() {
|
|
|
-
|
|
|
},
|
|
|
onClickEditAddress() {
|
|
|
-
|
|
|
}
|
|
|
}
|
|
|
}
|