skyblued 3 years ago
parent
commit
42e4fcdae6
2 changed files with 41 additions and 27 deletions
  1. 40 27
      src/views/cart/index.tsx
  2. 1 0
      src/views/shop-mall/modal/add-goods-cart/index.tsx

+ 40 - 27
src/views/cart/index.tsx

@@ -1,7 +1,7 @@
 import { defineComponent, ref } from 'vue'
 import ColHeader from '@/components/col-header'
 import styles from './index.module.less'
-import { Checkbox, SubmitBar, Card, Stepper, CheckboxGroup, Dialog } from 'vant'
+import { Checkbox, SubmitBar, Card, Stepper, CheckboxGroup, Dialog, Toast } from 'vant'
 import request from '@/helpers/request'
 import { cartConfirm, formateAttr } from './cart'
 import ColResult from '@/components/col-result'
@@ -47,7 +47,13 @@ export default defineComponent({
       this.cartList = []
       try {
         let { code, data } = await request.get('/api-mall-portal/cart/list')
-        code === 200 && (this.cartList = data)
+        if (code === 200){
+          this.cartList = data.map(n => {
+            n.stock = n.stock - n.lockStock
+            n.stock = n.stock <= 0 ? 1 : n.stock
+            return n
+          })
+        }
       } catch (err) {}
       this.dataShow = true
     },
@@ -69,12 +75,18 @@ export default defineComponent({
             params: {
               id: item.id,
               quantity: item.quantity
-            },
-
-            hideLoading: true
+            }
           }
         )
-      } catch (err) {}
+        if (item.quantity > data){
+          item.quantity = data
+          setTimeout(() => {
+            Toast('库存不足')
+          },500)
+          
+        }
+      } catch (err) {
+      }
     },
 
     onChecked(id: number) {
@@ -112,27 +124,27 @@ export default defineComponent({
           cartIds: this.selectItems.join(',')
         }
       })
-      return
-      const ids: number[] = [...this.selectItems]
-      try {
-        let { code, data } = await request.post(
-          '/api-mall-portal/order/generateConfirmOrder',
-          {
-            params: {
-              cartIds: ids.join(',')
-            }
-          }
-        )
-        if (code === 200) {
-          cartConfirm.calcAmount = data.calcAmount
-          cartConfirm.cartPromotionItemList = data.cartPromotionItemList
-          cartConfirm.memberReceiveAddressList = data.memberReceiveAddressList
-          // alert(JSON.stringify(data.memberReceiveAddressList))
-          this.$router.push({
-            path: '/cartConfirm'
-          })
-        }
-      } catch (error) {}
+      // return
+      // const ids: number[] = [...this.selectItems]
+      // try {
+      //   let { code, data } = await request.post(
+      //     '/api-mall-portal/order/generateConfirmOrder',
+      //     {
+      //       params: {
+      //         cartIds: ids.join(',')
+      //       }
+      //     }
+      //   )
+      //   if (code === 200) {
+      //     cartConfirm.calcAmount = data.calcAmount
+      //     cartConfirm.cartPromotionItemList = data.cartPromotionItemList
+      //     cartConfirm.memberReceiveAddressList = data.memberReceiveAddressList
+      //     // alert(JSON.stringify(data.memberReceiveAddressList))
+      //     this.$router.push({
+      //       path: '/cartConfirm'
+      //     })
+      //   }
+      // } catch (error) {}
     },
     gotoShopMall() {
       postMessage({
@@ -181,6 +193,7 @@ export default defineComponent({
                                 inputWidth="50px"
                                 buttonSize="24px"
                                 min={1}
+                                max={item.stock}
                                 integer
                               />
                             )

+ 1 - 0
src/views/shop-mall/modal/add-goods-cart/index.tsx

@@ -63,6 +63,7 @@ export default defineComponent({
         }
       ]
       skuStockList.forEach((item: any) => {
+        item.stock = item.stock - item.lockStock
         if (item.spData) {
           const spData = JSON.parse(item.spData)
           let str = ''