diff --git a/src/store/modules/carts.ts b/src/store/modules/carts.ts index 927d2b3..c911ddb 100644 --- a/src/store/modules/carts.ts +++ b/src/store/modules/carts.ts @@ -279,11 +279,11 @@ export const useCartsStore = defineStore("carts", () => { return; } const newNumber = item.number * 1 + step * 1; - let pack_number = newNumber < item.pack_number ? (item.pack_number * 1 + step * 1) : item.pack_number; + let pack_number = newNumber < item.pack_number ? (item.pack_number * 1 + step * 1) : item.pack_number * 1; if (dinnerType.value == 'take-out') { pack_number = newNumber } - if (item.product_type == 'weight') { + if (item.product_type == 'weight' && item.pack_number * 1 >= 1) { pack_number = 1 } update({ ...item, number: newNumber, pack_number }); @@ -331,7 +331,8 @@ export const useCartsStore = defineStore("carts", () => { product_name: "", remark: "", sku_id: '', - product_type: '' + product_type: '', + suitNum: 1 } //当前购物车直接添加 function cartsPush(data: any) { @@ -388,7 +389,7 @@ export const useCartsStore = defineStore("carts", () => { return sendMessage('del', data); } const pack_number = dinnerType.value == 'take-out' ? data.number : data.pack_number - sendMessage('edit', { ...data, pack_number }); + sendMessage('edit', { ...data, suitNum, pack_number }); } function updateTag(key: string, val: any, cart: CartsState = selCart.value) { const skuData = cart.skuData || { suitNum: 1 } @@ -402,6 +403,7 @@ export const useCartsStore = defineStore("carts", () => { const msg = { ...cart, [key]: val } if (key == 'number' && dinnerType.value == 'take-out') { msg.pack_number == val + msg.suitNum == skuData.suitNum } sendMessage('edit', msg); @@ -587,6 +589,17 @@ export const useCartsStore = defineStore("carts", () => { WebSocketManager.subscribeToTopic(initParams, (msg) => { console.log("收到消息:", msg); if (msg.hasOwnProperty('status') && msg.status != 1) { + if (msg.type === 'no_suit_num' && selListIndex.value != -1) { + return ElMessageBox.confirm(`${list.value[selListIndex.value].name}库存不足`, '提示', { + confirmButtonText: '确定', + + callback: (action: string) => { + if (action == 'confirm') { + list.value.splice(selListIndex.value, 1) + } + } + }); + } return ElMessage.error(msg.message || msg.msg || '操作失败') } if (msg && msg.data) { diff --git a/src/views/tool/Instead/components/dialog-goods-sel.vue b/src/views/tool/Instead/components/dialog-goods-sel.vue index 17c62df..b4a96c5 100644 --- a/src/views/tool/Instead/components/dialog-goods-sel.vue +++ b/src/views/tool/Instead/components/dialog-goods-sel.vue @@ -128,6 +128,7 @@ function confirm() { product_id: goods.value.id, number: number.value, product_type: goods.value.type, + suitNum: skuData.value.suitNum || 1, }); close(); } diff --git a/src/views/tool/Instead/components/goods-item.vue b/src/views/tool/Instead/components/goods-item.vue index e8af191..9389802 100644 --- a/src/views/tool/Instead/components/goods-item.vue +++ b/src/views/tool/Instead/components/goods-item.vue @@ -30,7 +30,10 @@ size="60" >