From 9d4cbff7464ebfd7803c2ce53ded49d0f73fe011 Mon Sep 17 00:00:00 2001
From: longz <longzhaoz@qq.com>
Date: 星期一, 29 六月 2026 20:33:55 +0800
Subject: [PATCH] 初步调整fix

---
 yuyueMiniProgram/src/pages/appointment/index.vue |   19 ++++++++++++++++++-
 1 files changed, 18 insertions(+), 1 deletions(-)

diff --git a/yuyueMiniProgram/src/pages/appointment/index.vue b/yuyueMiniProgram/src/pages/appointment/index.vue
index 1eb116c..a89331a 100644
--- a/yuyueMiniProgram/src/pages/appointment/index.vue
+++ b/yuyueMiniProgram/src/pages/appointment/index.vue
@@ -913,9 +913,26 @@
   }
 }
 
+function sortVisitReasons(reasons: MiniVisitReasonItem[]) {
+  return [...reasons].sort((left, right) => {
+    const leftIsOther = left.reasonCode === 'OTHER' || left.reasonName === '其他'
+    const rightIsOther = right.reasonCode === 'OTHER' || right.reasonName === '其他'
+    if (leftIsOther !== rightIsOther) {
+      return leftIsOther ? 1 : -1
+    }
+
+    const leftOrder = left.sortOrder ?? Number.MAX_SAFE_INTEGER
+    const rightOrder = right.sortOrder ?? Number.MAX_SAFE_INTEGER
+    if (leftOrder !== rightOrder) {
+      return leftOrder - rightOrder
+    }
+    return left.id - right.id
+  })
+}
+
 async function loadVisitReasons() {
   try {
-    visitReasons.value = await fetchVisitReasons()
+    visitReasons.value = sortVisitReasons(await fetchVisitReasons())
     if (selectedVisitReason.value) {
       const nextReason = visitReasons.value.find(item => item.reasonCode === selectedVisitReason.value?.reasonCode) || null
       selectedVisitReason.value = nextReason

--
Gitblit v1.7.1