فهرست منبع

点餐台功能优化

licc 3 هفته پیش
والد
کامیت
bbbe940ed8
2فایلهای تغییر یافته به همراه47 افزوده شده و 42 حذف شده
  1. 7 33
      src/views/order/console.vue
  2. 40 9
      src/views/order/index.vue

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

@@ -13,9 +13,9 @@
                         <div
                             class="justify-between items-center flex text-xl font-semibold font-mono"
                         >
-                            <span>{{ '桌台:' + data.deskName }}</span>
+                            <span>{{ (data.deskId > 0 ? '餐桌号:': '取餐号:') + data.deskName }}</span>
                             <div class="flex items-center">
-                                <span>{{ data.currentNum + '/' + data.deskCap }}</span>
+                                <span v-if="data.deskId > 0">{{ data.currentNum + '/' + data.deskCap }}</span>
                                 <el-icon class="ml-2 cursor-pointer" @click="refreshdishes">
                                     <Refresh />
                                 </el-icon>
@@ -353,20 +353,6 @@
             <p class="text-gray-600">正在支付中,请不要关闭或退出界面</p>
         </div>
     </el-dialog>
-    <el-dialog
-        v-model="takeNumberDialogVisible"
-        title="取餐号"
-        width="30%"
-        :close-on-click-modal="false"
-    >
-        <el-input v-model="takeNumber" placeholder="请输入取餐号" maxlength="10" show-word-limit />
-        <template #footer>
-            <span class="dialog-footer">
-                <el-button @click="takeNumberDialogVisible = false">取消</el-button>
-                <el-button type="primary" @click="confirmSubmit">确认结算</el-button>
-            </span>
-        </template>
-    </el-dialog>
 </template>
 
 <script setup lang="ts">
@@ -408,6 +394,7 @@ const scanCode = ref('')
 // 添加支付中对话框的控制变量
 const payingDialogVisible = ref(false)
 const data = reactive<any>({
+    deskId: null,
     deskName: '',
     deskCap: 0,
     currentNum: 0,
@@ -430,11 +417,8 @@ const params = reactive({
     userId: '', //用户id
     couponId: '', //优惠券id
     couponAmount: '-',
-    diningMethods: 1 // 就餐方式:1店内就餐 2打包外带
+    diningMethods: 1, // 就餐方式:1店内就餐 2打包外带
 })
-// 添加取餐号相关的变量
-const takeNumberDialogVisible = ref(false)
-const takeNumber = ref('')
 const submit = () => {
     //出单
     if (data.selectGoods.length == 0) {
@@ -445,22 +429,12 @@ const submit = () => {
         feedback.alert('支付金额需大于0!')
         return false
     }
-    // 显示取餐号输入弹框
-    takeNumberDialogVisible.value = true
-}
-// 添加确认提交函数
-const confirmSubmit = () => {
-    if (!takeNumber.value) {
-        feedback.msgError('请输入取餐号')
-        return
-    }
-    takeNumberDialogVisible.value = false
     feedback.loading('正在出单...')
     orderSubmit({
         ...params,
         userId: params.userId || null,
         couponId: params.couponId || null,
-        mealCode: takeNumber.value
+        mealCode: data.deskName || null
     })
         .then(() => {
             // data.selectGoods.length = 0
@@ -651,15 +625,16 @@ const handleCouponClick = (coupon: any) => {
 }
 
 const open = (item: any, num?: number, orderNumber?: any) => {
+  console.log('***open***', item, num, orderNumber)
     data.couponList = []
     showOrderConsole.value = true
+    data.deskId = item.id
     data.deskName = item.name
     data.deskCap = item.num
     data.currentNum = item.userNum ? item.userNum : num
     params.number = item.ordersId ? item.ordersId : orderNumber
     params.userId = ''
     params.couponId = ''
-    takeNumber.value = ''
     //查询当前订单下的所有菜品
     deskOrderedDishListAll({ id: params.number }).then((res) => {
         res.forEach((good: { id: number; ordersDishId: number }) => {
@@ -674,7 +649,6 @@ const open = (item: any, num?: number, orderNumber?: any) => {
             params.userId = res[0].userId || null
             params.couponId = res[0].ticketId || null
             params.diningMethods = res[0].diningMethods || 1
-            takeNumber.value = res[0].mealCode || ''
             if (params.couponId && params.userId) {
                 searchUserCoupons()
             }

+ 40 - 9
src/views/order/index.vue

@@ -10,6 +10,16 @@
                     :name="item.name"
                 ></el-tab-pane>
             </el-tabs>
+            <div class="p-1 flex-wrap float-left text-center md:w-56 h-20 w-1/3">
+              <div style="margin-bottom: 2px">
+                <el-input v-model="data.mealCode" placeholder="请输入取餐号" maxlength="10"/>
+              </div>
+              <div @click="startOrder" class="rounded w-full h-full pt-3 relative" style="background-color: #4A5DFF;color:rgba(255, 255, 255)">
+                <p class="font-semibold text-xl" style="font-size: 35px;">
+                  点餐台
+                </p>
+              </div>
+            </div>
             <div
                 v-for="i in deskList"
                 :key="i"
@@ -136,13 +146,13 @@
 import { Loading } from '@element-plus/icons-vue'
 import { postAll } from '@/api/org/post'
 import {
-    orderDeskList,
-    createOrders,
-    orderCheckout,
-    orderPay,
-    queryPayStatus,
-    cancelOrder,
-    rockoverDesk
+  orderDeskList,
+  createOrders,
+  orderCheckout,
+  orderPay,
+  queryPayStatus,
+  cancelOrder,
+  rockoverDesk, toEmptyy
 } from '@/api/order'
 import Console from './console.vue'
 import { getOrdersCurrent } from '@/api/orders'
@@ -154,6 +164,7 @@ console.log(userStore.userInfo.id + '开始链接客户端')
 const activeName = ref<any>('all')
 const dialogVisible = ref(false)
 const isLoading = ref(false)
+const mealCode = ref('')
 const currentDeskStatus = ref()
 const currentDeskMaxNum = ref<number>()
 const currentDeskAmount = ref<number>()
@@ -166,9 +177,11 @@ const data = reactive({
     userNum: 1, //当前就餐人数
     deskId: null,
     type: 0, //后台点餐类型:0
-    canScan: false
+    canScan: false,
+    mealCode: null
 })
 const order_ = (i: any) => {
+  console.log('***order_***', i)
     dialogVisible.value = true
     currentDesk = i
     currentDeskStatus.value = i.status
@@ -177,6 +190,7 @@ const order_ = (i: any) => {
 }
 const order = () => {
     dialogVisible.value = false
+    data.mealCode = currentDesk.name
     createOrders(data).then((res) => {
         consoleRef.value?.open(currentDesk, data.userNum, res)
         init()
@@ -184,6 +198,20 @@ const order = () => {
     console.warn('***order***', currentDesk)
     // router.push({ path: '/order/console', query: { deskID: id } })
 }
+const startOrder = () => {
+  if(data.mealCode == null || data.mealCode == '') {
+    feedback.notifyError('请输入取餐号')
+    return
+  }
+  currentDeskStatus.value = 0
+  data.deskId = 0
+  currentDeskMaxNum.value = null
+  currentDesk = {
+    id: data.deskId,
+    name: data.mealCode,
+  }
+  order();
+}
 const rockover = () => {
     feedback
         .confirm('将重置桌号状态, 确定翻台吗?')
@@ -358,6 +386,7 @@ const tabChange = (name: any) => {
     }
 }
 const init = async () => {
+  data.mealCode = ''
     let _list: any[] = []
     await orderDeskList().then((res: any) => {
         // deskList.value = res
@@ -366,10 +395,12 @@ const init = async () => {
         getOrdersCurrent().then((res) => {
             deskList.value = _list.map((item) => {
                 res.forEach((element: any) => {
+                    if (element.deskId == 0) {
+                      data.mealCode = element.mealCode
+                    }
                     if (item.id == element.deskId) {
                         item.status = element.status
                         item.userNum = element.userNum
-                        // item.amount = element.amount
                         item.ordersId = element.number
                         if (item.amount) {
                             item.amount += Number.parseFloat(element.amount)