浏览代码

如果已点菜品里面的status字段都是1,则禁用清空按钮,添加翻台功能

licc 2 月之前
父节点
当前提交
f53372a011
共有 3 个文件被更改,包括 23 次插入10 次删除
  1. 4 0
      src/api/order.ts
  2. 9 7
      src/views/order/console.vue
  3. 10 3
      src/views/order/index.vue

+ 4 - 0
src/api/order.ts

@@ -16,6 +16,10 @@ export function createOrders(params?: any) {
     return request.post({ url: '/order/create', params }) //创建订单
 }
 
+export function rockoverDesk(params?: any) {
+    return request.post({ url: '/order/rockover', params }) //翻台
+}
+
 export function dishAdd(params?: any) {
     return request.get({ url: '/order/dishAdd', params }) //添加菜品
 }

+ 9 - 7
src/views/order/console.vue

@@ -161,7 +161,9 @@
                         </el-badge>
                         <span class="ml-5 text-base">合计: ¥{{ orderData.sumPriceSum.toFixed(2) }}</span>
                     </div>
-                    <el-button type="primary" class="action-btn !w-[50px] !h-[40px]" @click="toEmpty()">清空</el-button>
+                    <el-button type="primary" class="action-btn !w-[50px] !h-[40px]" @click="toEmpty()"
+                    :disabled="data.selectGoods.length > 0 && data.selectGoods.every(good => good.status === 1)"
+                    >清空</el-button>
                     <el-badge :value="params.couponId ? 1 : ''" :hidden="!params.couponId">
                         <el-button type="primary" class="action-btn !w-[200px] !h-[40px]" @click="showCouponDialog = true">
                             优惠 {{ params.couponAmount !== '-' ? `¥${params.couponAmount}` : '' }}
@@ -655,15 +657,15 @@ const refreshdishes = async () => {
                 ? Number((res[0].payAmount / 100).toFixed(2))
                 : Number(orderData.sumPriceSum).toFixed(2)
         } else {
-            orderData.priceSum = 0
-            orderData.numSum = 0
-            orderData.sumPriceSum = 0
-            orderData.sumNumSum = 0
-            orderData.payAmount = 0
+          orderData.priceSum = 0
+          orderData.numSum = 0
+          orderData.sumPriceSum = 0
         }
     }).finally(() => {
-        orderLoading.value = false
+        orderData.sumNumSum = 0
+        orderData.payAmount = 0
     })
+    orderLoading.value = false
 }
 watch(search, (value) => {
     if (!value) {

+ 10 - 3
src/views/order/index.vue

@@ -85,7 +85,7 @@
                 </el-radio-group>
                 <el-button class="w-full" plain @click="order()">开始点餐</el-button>
             </div>
-            <el-button class="w-full mt-1" plain @click="dialogVisible = false">关闭</el-button>
+            <el-button v-if="currentDeskStatus != 2" class="w-full mt-1" plain @click="rockover()">翻台</el-button>
         </el-dialog>
         <el-dialog
             v-model="scanDialogVisible"
@@ -132,7 +132,7 @@
 // 在 script setup 部分添加
 import { Loading } from '@element-plus/icons-vue'
 import { postAll } from '@/api/org/post'
-import { orderDeskList, createOrders, orderCheckout, orderPay, queryPayStatus, cancelOrder } from '@/api/order'
+import { orderDeskList, createOrders, orderCheckout, orderPay, queryPayStatus, cancelOrder, rockoverDesk } from '@/api/order'
 import Console from './console.vue'
 import { getOrdersCurrent } from '@/api/orders'
 import feedback from '@/utils/feedback'
@@ -154,7 +154,7 @@ const data = reactive({
     userNum: 1, //当前就餐人数
     deskId: null,
     type: 0, //后台点餐类型:0
-    canScan: false,
+    canScan: false
 })
 const order_ = (i: any) => {
     dialogVisible.value = true
@@ -172,6 +172,13 @@ const order = () => {
     console.warn('***order***', currentDesk)
     // router.push({ path: '/order/console', query: { deskID: id } })
 }
+const rockover = () => {
+  rockoverDesk(data).then(() => {
+    feedback.notifySuccess('翻台成功!')
+    dialogVisible.value = false
+    init()
+  })
+}
 const reorder = () => {
     dialogVisible.value = false
     consoleRef.value?.open(currentDesk) //继续下单时会把当前餐桌上的订单号ordersId传进去