|
@@ -56,12 +56,14 @@
|
|
|
<image mode="scaleToFill" style="width: 30rpx;height: 30rpx;"src="/static/ledou.png"></image>
|
|
|
</view>
|
|
|
<view v-if="good.goods.inventoryQty>0&&good.goods.state==1">
|
|
|
- <uni-numbers-box @change="goodsNumsChange()" :index="cindex+'-'+index" :value="good.buyQty" :min="1"></uni-numbers-box>
|
|
|
+ <uni-numbers-box @change="goodsNumsChange()" :index="cindex+'-'+index" :value="good.buyQty" :max="good.goods.inventoryQty" :min="1"></uni-numbers-box>
|
|
|
</view>
|
|
|
<view v-else>
|
|
|
<view style="width: 100rpx;text-align: center;">×{{good.buyQty}}</view>
|
|
|
</view>
|
|
|
</view>
|
|
|
+ <view class="goods-kucun" v-if="good.goods.state == 1&&good.goods.inventoryQty==0">库存不足</view>
|
|
|
+ <view class="goods-kucun" v-else>库存:<text>{{good.goods.inventoryQty}}</text></view>
|
|
|
</view>
|
|
|
</view>
|
|
|
</view>
|
|
@@ -102,6 +104,13 @@
|
|
|
<u-button size="mini" :custom-style="toOrderButton" type="error" @click="delGoods">删除</u-button>
|
|
|
</view>
|
|
|
</view>
|
|
|
+ <!-- 弹框提示 -->
|
|
|
+ <u-popup v-model="showMsg" border-radius="15" closeable mode="center" width="500rpx">
|
|
|
+ <view style="padding: 40rpx;line-height: 40rpx;font-size: 28rpx;">
|
|
|
+ <view style="text-align: center;font-size: 32rpx;margin-bottom: 20rpx;">提示</view>
|
|
|
+ <view v-for="item in msgContent" :key="item.id">{{item.message}}</view>
|
|
|
+ </view>
|
|
|
+ </u-popup>
|
|
|
</view>
|
|
|
</template>
|
|
|
<script>
|
|
@@ -117,7 +126,9 @@
|
|
|
checkAll: false,// 全选
|
|
|
isEdit: false, // 是否编辑模式
|
|
|
cartList: [], // 商品列表
|
|
|
- loading: false
|
|
|
+ loading: false,
|
|
|
+ showMsg: false,
|
|
|
+ msgContent: []
|
|
|
};
|
|
|
},
|
|
|
computed: {
|
|
@@ -193,22 +204,11 @@
|
|
|
})
|
|
|
return goods
|
|
|
},
|
|
|
- // 判断当前分类下的商品总和是否满足规则
|
|
|
- hasZgjindu(item){
|
|
|
- let ret = 0
|
|
|
- let goldLimit = item.goldLimit
|
|
|
- item.shoppingCartGoodsList.map(good=>{
|
|
|
- ret = ret + good.goods.sellGold * good.buyQty
|
|
|
- })
|
|
|
- console.log(ret , goldLimit)
|
|
|
- return !this.isEdit ? ret >= goldLimit : true
|
|
|
- },
|
|
|
// 设置每个分类下的商品选中状态
|
|
|
setClsGoodStatus(item,checked){
|
|
|
- console.log(checked)
|
|
|
item.shoppingCartGoodsList.map(good=>{
|
|
|
// 已下架,已删除,已销完的不选
|
|
|
- if((good.goods.inventoryQty==0||good.goods.state == 0||good.goods.delFlage == 0) && !this.isEdit){
|
|
|
+ if((good.goods.inventoryQty==0||good.goods.state == 0) && !this.isEdit){
|
|
|
good.checked = false
|
|
|
}else{
|
|
|
good.checked = checked
|
|
@@ -287,15 +287,40 @@
|
|
|
this.checkAll = true
|
|
|
this.checkAllChange()
|
|
|
},
|
|
|
+ // 判断当前分类下的商品总和是否满足规则
|
|
|
+ hasZgjindu(){
|
|
|
+ let result = []
|
|
|
+ let list = this.cartList.filter(item=>item.total>0)
|
|
|
+ for(let i=0;i<list.length;i++){
|
|
|
+ let item = list[i]
|
|
|
+ let ret = 0
|
|
|
+ item.shoppingCartGoodsList.map(good=>{
|
|
|
+ if(good.checked){
|
|
|
+ ret = ret + good.goods.sellGold * good.buyQty
|
|
|
+ }
|
|
|
+ })
|
|
|
+ result.push({id:item.goodsTypeNo,val:ret >= item.goldLimit,message:`[${item.name}]的商品合计满${item.goldLimit}乐豆才可购买`})
|
|
|
+ }
|
|
|
+
|
|
|
+ console.log(result.filter(item=>!item.val))
|
|
|
+ return result.filter(item=>!item.val)
|
|
|
+ },
|
|
|
// 立即下单
|
|
|
toOrder(){
|
|
|
let goods = this.getCheckGoods(1)
|
|
|
if(this.userData.currentGold >= this.totalPrice){
|
|
|
if(goods.length){
|
|
|
- this.$u.vuex("vuex_toOrderList",goods)
|
|
|
- uni.redirectTo({
|
|
|
- url:"/pages/toOrder/index"
|
|
|
- })
|
|
|
+ // 判断是否满足规则
|
|
|
+ let a = this.hasZgjindu()
|
|
|
+ if(a.length==0){
|
|
|
+ this.$u.vuex("vuex_toOrderList",goods)
|
|
|
+ uni.redirectTo({
|
|
|
+ url:"/pages/toOrder/index"
|
|
|
+ })
|
|
|
+ }else{
|
|
|
+ this.showMsg = true
|
|
|
+ this.msgContent = a
|
|
|
+ }
|
|
|
}else{
|
|
|
uni.showToast({
|
|
|
title:"请选择商品",
|
|
@@ -460,11 +485,18 @@ page{
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ .goods-kucun{
|
|
|
+ padding-top: 10rpx;
|
|
|
+ font-size: 22rpx;
|
|
|
+ text{
|
|
|
+ color: #999;
|
|
|
+ }
|
|
|
+ }
|
|
|
.goods-price{
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
|
justify-content: space-between;
|
|
|
- padding-top: 20upx;
|
|
|
+ padding-top: 10upx;
|
|
|
>view{
|
|
|
&:first-child{
|
|
|
font-size: 22upx;
|