|
@@ -32,37 +32,35 @@
|
|
|
<checkbox :value="item._id" :checked="item.check">
|
|
|
优惠套装---{{item.name||'暂无名称'}}</checkbox>
|
|
|
</view>
|
|
|
- <checkbox-group name="checkbox" @change="goodsChange">
|
|
|
- <view class="content" v-for="gs in item.goods" :key="gs.goodsSpec_id">
|
|
|
- <view class="img">
|
|
|
- <image :src="getFile(gs)"></image>
|
|
|
+ <view class="content" v-for="(gs,indexx) in item.goods" :key="indexx">
|
|
|
+ <view class="img">
|
|
|
+ <image :src="getFile(gs)"></image>
|
|
|
+ </view>
|
|
|
+ <view class="one_1" @click="toCommon('/pagesHome/order/detail',gs)">
|
|
|
+ <view class="name"><text class="set">套装</text> {{gs.goods_name}}
|
|
|
</view>
|
|
|
- <view class="one_1" @click="toCommon('/pagesHome/order/detail',gs)">
|
|
|
- <view class="name"><text class="set">套装</text> {{gs.goods_name}}
|
|
|
- </view>
|
|
|
- <view class="info">
|
|
|
- <view class="title_1" v-if="gs.spec_name">
|
|
|
- <text>规格:{{gs.spec_name}}</text>
|
|
|
- </view>
|
|
|
+ <view class="info">
|
|
|
+ <view class="title_1" v-if="gs.spec_name">
|
|
|
+ <text>规格:{{gs.spec_name}}</text>
|
|
|
</view>
|
|
|
</view>
|
|
|
- <view class="money">
|
|
|
- <view>{{gs.set_num}}件/套x{{gs.set_num}}</view>
|
|
|
- </view>
|
|
|
</view>
|
|
|
- <view class="total">
|
|
|
- <view class="total_1"> <text>套装价</text>¥{{item.sell_money||0}} </view>
|
|
|
- <view class="total_2">
|
|
|
- <view class="num">
|
|
|
- <uni-number-box @change="changeValue(item)" name="num" value="item"
|
|
|
- :min="1" v-model="item.num" />
|
|
|
- </view>
|
|
|
- <view class="del">
|
|
|
- <text class="iconfont icon-del-copy" @click="toDel(item)"></text>
|
|
|
- </view>
|
|
|
+ <view class="money">
|
|
|
+ <view>{{gs.set_num}}件/套x{{gs.set_num}}</view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ <view class="total">
|
|
|
+ <view class="total_1"> <text>套装价</text>¥{{item.sell_money||0}} </view>
|
|
|
+ <view class="total_2">
|
|
|
+ <view class="num">
|
|
|
+ <uni-number-box @change="changeValue(item)" name="num" value="item"
|
|
|
+ :min="1" v-model="item.num" />
|
|
|
+ </view>
|
|
|
+ <view class="del">
|
|
|
+ <text class="iconfont icon-del-copy" @click="toDel(item)"></text>
|
|
|
</view>
|
|
|
</view>
|
|
|
- </checkbox-group>
|
|
|
+ </view>
|
|
|
</view>
|
|
|
<view class="list_2" v-else>
|
|
|
<view class="title">
|
|
@@ -206,8 +204,9 @@
|
|
|
} = e.detail;
|
|
|
for (const p1 of list) {
|
|
|
let p2;
|
|
|
- if (p1._id) p2 = value.find((i) => i == p1._id);
|
|
|
- if (p1.shop) p2 = value.find((i) => i == p1.shop);
|
|
|
+ // 判断是套装还是正常商品
|
|
|
+ if (p1.is_set == '0') p2 = value.find((i) => i == p1._id);
|
|
|
+ else p2 = value.find((i) => i == p1.shop);
|
|
|
let a = p2 ? true : false;
|
|
|
p1.check = a;
|
|
|
for (let s of p1.goods) {
|
|
@@ -284,6 +283,7 @@
|
|
|
const that = this;
|
|
|
this.$nextTick(async () => {
|
|
|
let res;
|
|
|
+ // 判断是套装还是正常商品
|
|
|
if (value.is_set == '0') {
|
|
|
const {
|
|
|
_id: set_id,
|
|
@@ -328,6 +328,8 @@
|
|
|
// 删除, 接口,购物车删除,然后将该数据移除
|
|
|
async toDel(e) {
|
|
|
let list = this.list;
|
|
|
+ let set_list = [];
|
|
|
+ let goods_list = [];
|
|
|
uni.showModal({
|
|
|
title: '提示',
|
|
|
content: '请选择要删除的商品',
|
|
@@ -336,27 +338,50 @@
|
|
|
if (e?.cart_id) {
|
|
|
const result = await this.$api(`/cart/${e.cart_id}`, 'Delete');
|
|
|
if (result.errcode === 0) {
|
|
|
- list = list.map(i => ({
|
|
|
+ // 判断是套装还是正常商品
|
|
|
+ set_list = list.filter(i => i.is_set == '0')
|
|
|
+ goods_list = list.filter(i => i.is_set !== '0')
|
|
|
+ set_list = set_list.filter(i => i.cart_id !== e.cart_id)
|
|
|
+ goods_list = goods_list.map(i => ({
|
|
|
...i,
|
|
|
goods: i.goods.filter(f => f.cart_id !== e.cart_id)
|
|
|
}))
|
|
|
- this.$set(this, `list`, list);
|
|
|
+ this.$set(this, `list`, [...set_list, ...goods_list]);
|
|
|
// 检查店铺内是否还有商品
|
|
|
this.checkShopGoodsExist();
|
|
|
// 计算总额
|
|
|
this.countMoney();
|
|
|
}
|
|
|
} else {
|
|
|
- const goodsList = list.map(i => i.goods).flat();
|
|
|
- const cartIds = goodsList.filter(i => i.check).map(i => i.cart_id)
|
|
|
+ let goodsList = [];
|
|
|
+ let cartIds = [];
|
|
|
+ for (let val of this.list) {
|
|
|
+ // 判断是套装还是正常商品
|
|
|
+ if (val.is_set == '0') goodsList.push(val)
|
|
|
+ else goodsList.push(val.goods)
|
|
|
+ }
|
|
|
+ for (let val of goodsList) {
|
|
|
+ // 判断是套装还是正常商品
|
|
|
+ if (val.is_set == '0') {
|
|
|
+ if (val.check) cartIds.push(val.cart_id)
|
|
|
+ } else {
|
|
|
+ for (let set of val) {
|
|
|
+ if (set.check) cartIds.push(set.cart_id)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ set_list = list.filter(i => i.is_set == '0')
|
|
|
+ goods_list = list.filter(i => i.is_set !== '0')
|
|
|
for (let val of cartIds) {
|
|
|
const result = await this.$api(`/cart/${val}`, 'Delete');
|
|
|
if (result.errcode === 0) {
|
|
|
- list = list.map(i => ({
|
|
|
+ // 判断是套装还是正常商品
|
|
|
+ set_list = set_list.filter(i => i.cart_id !== val)
|
|
|
+ goods_list = goods_list.map(i => ({
|
|
|
...i,
|
|
|
goods: i.goods.filter(f => f.cart_id !== val)
|
|
|
}))
|
|
|
- this.$set(this, `list`, list);
|
|
|
+ this.$set(this, `list`, [...set_list, ...goods_list]);
|
|
|
// 检查店铺内是否还有商品
|
|
|
this.checkShopGoodsExist();
|
|
|
// 计算总额
|
|
@@ -381,6 +406,7 @@
|
|
|
// 渲染结束执行下面方法
|
|
|
that.$nextTick(() => {
|
|
|
for (const val of list) {
|
|
|
+ // 判断是套装还是正常商品
|
|
|
if (val.is_set == '0') {
|
|
|
if (val.check == true) {
|
|
|
let total = that.$multiply(val.sell_money, val.num);
|
|
@@ -409,10 +435,12 @@
|
|
|
let goodsList = [];
|
|
|
let cartIds = [];
|
|
|
for (let val of this.list) {
|
|
|
+ // 判断是套装还是正常商品
|
|
|
if (val.is_set == '0') goodsList.push(val)
|
|
|
else goodsList.push(val.goods)
|
|
|
}
|
|
|
for (let val of goodsList) {
|
|
|
+ // 判断是套装还是正常商品
|
|
|
if (val.is_set == '0') {
|
|
|
if (val.check) cartIds.push(val.cart_id)
|
|
|
} else {
|