From 77649c76ec1c3afcb93e9963243d637665b3a307 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期五, 21 八月 2026 16:56:28 +0800
Subject: [PATCH] update

---
 mingdaojingjiang_guide_app/pages/workbench/index.vue |   33 +++++++++++++++++++++++++++++----
 1 files changed, 29 insertions(+), 4 deletions(-)

diff --git a/mingdaojingjiang_guide_app/pages/workbench/index.vue b/mingdaojingjiang_guide_app/pages/workbench/index.vue
index 07930d6..e445198 100644
--- a/mingdaojingjiang_guide_app/pages/workbench/index.vue
+++ b/mingdaojingjiang_guide_app/pages/workbench/index.vue
@@ -65,7 +65,13 @@
             </view>
           </view>
           <button v-if="isServing" class="lecture-button" @tap="finishLecture">结束讲解</button>
-          <button v-else class="lecture-button" @tap="startLecture">开始讲解</button>
+          <button
+            v-else
+            class="lecture-button"
+            :loading="startingLecture"
+            :disabled="startingLecture"
+            @tap="startLecture"
+          >开始讲解</button>
         </template>
         <template v-else>
           <view class="empty-order">暂无订单请耐心等待</view>
@@ -136,7 +142,7 @@
   updateGuideOnlineStatus
 } from '../../services/guide'
 import { openMeetingPointPage } from '../../services/map'
-import { getGuideOrders } from '../../services/order'
+import { getGuideOrders, startGuideLecture } from '../../services/order'
 import { playNotificationAlert } from '../../services/message'
 import { getWorkbenchData } from '../../services/workbench'
 import { formatDuration, maskPhone } from '../../utils/format'
@@ -196,6 +202,7 @@
       countdownTimer: null,
       refreshTimer: null,
       refreshing: false,
+      startingLecture: false,
       dialog: {
         visible: false,
         title: '提示',
@@ -480,9 +487,27 @@
       })
     },
     startLecture() {
-      updateGuideOnlineStatus('serving', this.guide.receivingConfig || {}).then(() => {
-        this.loadData()
+      const orderId = this.activeReceivingOrder.id
+      if (this.startingLecture) {
+        return
+      }
+      if (!orderId) {
+        uni.showToast({ title: '当前没有可开始的订单', icon: 'none' })
+        return
+      }
+      this.startingLecture = true
+      startGuideLecture(orderId).then((startedOrder) => {
+        this.updateGuide({ ...this.guide, onlineStatus: 'serving' })
+        this.updateOrders(this.orders.map((order) => (
+          order.id === startedOrder.id ? { ...order, ...startedOrder } : order
+        )))
+        this.setupCountdown()
         uni.showToast({ title: '已开始讲解', icon: 'none' })
+        return this.loadData({ silent: true })
+      }).catch((error) => {
+        uni.showToast({ title: error.message || '开始讲解失败', icon: 'none' })
+      }).finally(() => {
+        this.startingLecture = false
       })
     },
     finishLecture() {

--
Gitblit v1.7.1