From 2895b4ea66e09cb355aeb4e030ca0de297bf8ce3 Mon Sep 17 00:00:00 2001
From: WXL <wl_5969728@163.com>
Date: 星期四, 16 四月 2026 16:55:02 +0800
Subject: [PATCH] 青岛移动端维护

---
 pages/case/index.vue |  605 ++++++++++++++++++++++++++----------------------------
 1 files changed, 296 insertions(+), 309 deletions(-)

diff --git a/pages/case/index.vue b/pages/case/index.vue
index 338f5ea..3836b08 100644
--- a/pages/case/index.vue
+++ b/pages/case/index.vue
@@ -124,8 +124,8 @@
             <text class="value">{{ caseItem.reviewerName }}</text>
           </view>
         </view>
-        <!-- 鏄剧ず杞繍璇︽儏 -->
-        <!-- 鍦� .detail-info 閮ㄥ垎涔嬪悗锛�.footer 閮ㄥ垎涔嬪墠娣诲姞杞繍淇℃伅鍖哄煙 -->
+
+        <!-- 杞繍淇℃伅鍖哄煙 -->
         <view class="transport-section">
           <view class="transport-info">
             <text class="label">杞繍鐘舵��</text>
@@ -137,31 +137,80 @@
             </text>
           </view>
 
-          <!-- 鏄剧ず杞繍璇︽儏 -->
+          <!-- 鏄剧ず杞繍璇︽儏锛氬彧瑕佹湁杞繍鍗曞彿灏辨樉绀� -->
           <view
             class="transport-details"
-            v-if="caseItem.transportStatus !== 'not_transported'"
+            v-if="caseItem.transportOrderNo && caseItem.transportOrderNo !== ''"
           >
             <view class="detail-item">
               <text class="detail-label">杞繍鍗曞彿</text>
               <text class="detail-value">{{ caseItem.transportOrderNo }}</text>
             </view>
-            <view class="detail-item" v-if="caseItem.transportDetails">
+
+            <view class="detail-item" v-if="caseItem.transportTime">
+              <text class="detail-label">璁″垝杞繍鏃堕棿</text>
+              <text class="detail-value">{{ caseItem.transportTime }}</text>
+            </view>
+
+            <view class="detail-item" v-if="caseItem.transportDetails?.vehicle">
               <text class="detail-label">杞繍杞﹁締</text>
               <text class="detail-value">{{
                 caseItem.transportDetails.vehicle
               }}</text>
             </view>
+
+            <view class="detail-item" v-if="caseItem.transportDetails?.driver">
+              <text class="detail-label">椹鹃┒鍛�</text>
+              <text class="detail-value">{{
+                caseItem.transportDetails.driver
+              }}</text>
+            </view>
+
+            <view class="detail-item" v-if="caseItem.transportDetails?.phone">
+              <text class="detail-label">鑱旂郴鐢佃瘽</text>
+              <text class="detail-value">{{
+                caseItem.transportDetails.phone
+              }}</text>
+            </view>
+
+            <!-- 杞繍涓墠鏄剧ず鐨勫姩鎬佷俊鎭� -->
             <view
               class="detail-item"
               v-if="
-                caseItem.transportDetails &&
-                caseItem.transportStatus === 'transporting'
+                caseItem.transportStatus === 'transporting' &&
+                caseItem.transportDetails?.currentLocation
               "
             >
               <text class="detail-label">褰撳墠浣嶇疆</text>
               <text class="detail-value">{{
                 caseItem.transportDetails.currentLocation
+              }}</text>
+            </view>
+
+            <view
+              class="detail-item"
+              v-if="
+                caseItem.transportStatus === 'transporting' &&
+                caseItem.transportDetails?.estimatedTime
+              "
+            >
+              <text class="detail-label">棰勮鍒拌揪</text>
+              <text class="detail-value">{{
+                caseItem.transportDetails.estimatedTime
+              }}</text>
+            </view>
+
+            <!-- 瀹屾垚鍚庢樉绀虹殑淇℃伅 -->
+            <view
+              class="detail-item"
+              v-if="
+                caseItem.transportStatus === 'completed' &&
+                caseItem.transportDetails?.completedTime
+              "
+            >
+              <text class="detail-label">瀹屾垚鏃堕棿</text>
+              <text class="detail-value">{{
+                caseItem.transportDetails.completedTime
               }}</text>
             </view>
           </view>
@@ -170,7 +219,7 @@
           <view class="transport-actions">
             <button
               v-if="
-                caseItem.transportStatus === 'not_transported' &&
+                !caseItem.transportOrderNo &&
                 caseItem.status === 'agreed'
               "
               class="transport-btn primary"
@@ -190,8 +239,11 @@
               闇�鍏堝悓鎰忔渚�
             </button>
 
+            <!-- 鍙鏈夎浆杩愬崟鍙峰氨鍙互鏌ョ湅璇︽儏 -->
             <button
-              v-if="caseItem.transportStatus !== 'not_transported'"
+              v-if="
+                caseItem.transportOrderNo && caseItem.transportOrderNo !== ''
+              "
               class="transport-btn secondary"
               @tap.stop="viewTransportDetail(caseItem)"
             >
@@ -207,6 +259,7 @@
             </button>
           </view>
         </view>
+
         <view class="footer">
           <view class="action-info">
             <text class="label">妗堜緥鐘舵��</text>
@@ -248,9 +301,14 @@
       </view>
 
       <!-- 绌虹姸鎬� -->
-      <view class="empty-state" v-if="filteredCases.length === 0">
+      <view class="empty-state" v-if="!loading && filteredCases.length === 0">
         <image src="/static/empty/no-case.png" mode="aspectFit" />
         <text>鏆傛棤鍣ㄥ畼鎹愮尞妗堜緥璁板綍</text>
+      </view>
+
+      <!-- 鍔犺浇鐘舵�� -->
+      <view class="empty-state" v-if="loading">
+        <text>鏁版嵁鍔犺浇涓�...</text>
       </view>
     </scroll-view>
 
@@ -275,70 +333,31 @@
 </template>
 
 <script setup>
-import { ref, computed } from "vue";
+import { ref, computed, onMounted } from "vue";
 import { onLoad, onShow } from "@dcloudio/uni-app";
 import { useDict } from "@/utils/dict";
 
+// 鍝嶅簲寮忔暟鎹�
 const dict = ref({});
-const genderOptions = ref([]);
-const educationOptions = ref([]);
+const loading = ref(false);
+const cases = ref([]);
 const total = ref(0);
 const pageNum = ref(1);
 const pageSize = ref(10);
+const hasMore = ref(true);
+const refreshing = ref(false);
 
 // 缁熻鏁版嵁
 const stats = ref({
-  totalCases: 8,
-  readCases: 4,
-  agreedCases: 2,
+  totalCases: 0,
+  readCases: 0,
+  agreedCases: 0,
 });
 
 // 鎾ゅ洖纭寮圭獥鐩稿叧
 const showWithdrawModal = ref(false);
 const currentCase = ref({});
 
-onLoad(async (options) => {
-  // 鑾峰彇瀛楀吀鏁版嵁
-  dict.value = await useDict(
-    "sys_IDType",
-    "sys_user_sex",
-    "sys_BloodType",
-    "sys_DiseaseType"
-  );
-
-  // 鍒濆鍖栭�夐」鏁版嵁
-  initOptions();
-  donatebaseinforeportList();
-  donateTotal();
-});
-onShow(() => {
-  // 杩欓噷鍙互娣诲姞浠庤浆杩愰〉闈㈣繑鍥炴椂鐨勬暟鎹埛鏂伴�昏緫
-  // 渚嬪妫�鏌ユ湰鍦板瓨鍌ㄤ腑鏄惁鏈夐渶瑕佹洿鏂扮殑杞繍鐘舵��
-  const transportUpdate = uni.getStorageSync("transportStatusUpdate");
-  if (transportUpdate) {
-    updateTransportStatus(transportUpdate.orderNo, transportUpdate.status);
-    uni.removeStorageSync("transportStatusUpdate");
-  }
-});
-
-// 鍒濆鍖栭�夐」鏁版嵁鐨勬柟娉�
-const initOptions = () => {
-  genderOptions.value = dict.value.sys_IDType || [];
-  educationOptions.value = dict.value.sys_user_sex || [];
-};
-const donatebaseinforeportList = async () => {
-  const params = {
-    pageNum: pageNum.value,
-    pageSize: pageSize.value,
-  };
-  const res = await uni.$uapi.post("/system/donatebaseinforeport/list", params);
-  total.value = res.total;
-  console.log(res.records, "11");
-};
-const donateTotal = async () => {
-  const res = await uni.$uapi.post("/system/donatebaseinforeport/getTotal");
-  console.log(res);
-};
 // 绛涢�夌浉鍏�
 const caseTypes = [
   { label: "鍏ㄩ儴", value: "all" },
@@ -350,186 +369,7 @@
 const currentType = ref("all");
 const startDate = ref("");
 const endDate = ref("");
-// 妗堜緥璁板綍鏁版嵁 - 澧炲姞鏇村鏁版嵁[1,4](@ref)
-const cases = ref([
-  {
-    id: 1,
-    donorNo: "DON20240325001",
-    hospitalName: "闈掑矝闀滄箹鍖婚櫌",
-    hospitalLogo: "/static/hospital/kiang-wu.jpg",
-    caseType: "鍣ㄥ畼鎹愮尞妗堜緥",
-    donorName: "寮犱笁",
-    idCardNo: "370203198510123456",
-    gender: "鐢�",
-    age: 38,
-    bloodType: "A鍨�",
-    diagnosis: "鑴戝浼ゅ鑷磋剳姝讳骸",
-    reportTime: "2024-03-25 09:30",
-    reporterName: "鏉庡尰鐢�",
-    status: "agreed",
-    statusText: "宸插悓鎰�",
-    departmentName: "绁炵粡澶栫",
-    contactPerson: "鐜嬫姢澹�",
-    contactPhone: "13800138000",
-    redCrossOrg: "闈掑矝甯傜孩鍗佸瓧浼�",
-    acquisitionOrg: "闈掑矝甯傚櫒瀹樿幏鍙栫粍缁�",
-    transportStatus: "not_transported", // 杞繍鐘舵�侊細not_transported-鏈浆杩�, transporting-杞繍涓�, completed-宸插畬鎴�
-    transportOrderNo: "", // 杞繍鍗曞彿
-    transportTime: "", // 杞繍鏃堕棿
-    transportDetails: null, // 杞繍璇︽儏
-  },
-  {
-    id: 2,
-    donorNo: "DON20240320002",
-    hospitalName: "闈掑矝绉戝ぇ鍖婚櫌",
-    hospitalLogo: "/static/hospital/must.jpg",
-    caseType: "鍣ㄥ畼鎹愮尞妗堜緥",
-    donorName: "鏉庡洓",
-    idCardNo: "370205197805207890",
-    gender: "濂�",
-    age: 45,
-    bloodType: "O鍨�",
-    diagnosis: "鎬ユ�у績鑲屾姝�",
-    reportTime: "2024-03-20 15:00",
-    reporterName: "寮犲尰鐢�",
-    status: "read",
-    statusText: "宸查槄璇�",
-    reviewTime: "2024-03-21 10:15",
-    reviewerName: "瀹℃牳涓撳憳A",
-    departmentName: "蹇冨唴绉�",
-    contactPerson: "璧垫姢澹�",
-    contactPhone: "13900139000",
-    redCrossOrg: "闈掑矝甯傜孩鍗佸瓧浼�",
-    acquisitionOrg: "闈掑矝甯傚櫒瀹樿幏鍙栫粍缁�",
-    transportStatus: "transporting", // 杞繍涓�
-    transportOrderNo: "TR20240321001",
-    transportTime: "2024-03-21 14:30",
-    transportDetails: {
-      driver: "寮犲笀鍌�",
-      vehicle: "椴丅12345",
-      phone: "13800138000",
-      estimatedTime: "2灏忔椂",
-      currentLocation: "闈掑矝甯傚崡鍖�",
-    },
-  },
-  {
-    id: 3,
-    donorNo: "DON20240318003",
-    hospitalName: "闈掑矝澶у闄勫睘鍖婚櫌",
-    hospitalLogo: "/static/hospital/qingda.jpg",
-    caseType: "鍣ㄥ畼鎹愮尞妗堜緥",
-    donorName: "鐜嬩簲",
-    idCardNo: "370211197212153214",
-    gender: "鐢�",
-    age: 51,
-    bloodType: "B鍨�",
-    diagnosis: "棰呭唴鍑鸿",
-    reportTime: "2024-03-18 14:20",
-    reporterName: "鍒樺尰鐢�",
-    status: "agreed",
-    statusText: "宸插悓鎰�",
-    reviewTime: "2024-03-19 09:45",
-    reviewerName: "瀹℃牳涓撳憳B",
-    departmentName: "绁炵粡鍐呯",
-    contactPerson: "閽辨姢澹�",
-    contactPhone: "13600136000",
-    redCrossOrg: "闈掑矝甯傜孩鍗佸瓧浼�",
-    acquisitionOrg: "闈掑矝甯傚櫒瀹樿幏鍙栫粍缁�",
-    transportStatus: "completed", // 宸插畬鎴�
-    transportOrderNo: "TR20240319001",
-    transportTime: "2024-03-19 11:20",
-    transportDetails: {
-      driver: "鏉庡笀鍌�",
-      vehicle: "椴丅67890",
-      phone: "13900139000",
-      completedTime: "2024-03-19 13:45",
-      distance: "156鍏噷",
-    },
-  },
-  {
-    id: 4,
-    donorNo: "DON20240315004",
-    hospitalName: "闈掑矝甯傜珛鍖婚櫌",
-    hospitalLogo: "/static/hospital/shili.jpg",
-    caseType: "鍣ㄥ畼鎹愮尞妗堜緥",
-    donorName: "璧靛叚",
-    idCardNo: "370205198803274561",
-    gender: "濂�",
-    age: 36,
-    bloodType: "AB鍨�",
-    diagnosis: "澶氬櫒瀹樺姛鑳借“绔�",
-    reportTime: "2024-03-15 16:40",
-    reporterName: "闄堝尰鐢�",
-    status: "rejected",
-    statusText: "宸查┏鍥�",
-    reviewTime: "2024-03-16 11:20",
-    reviewerName: "瀹℃牳涓撳憳C",
-    rejectReason: "璧勬枡涓嶅畬鏁达紝闇�琛ュ厖瀹跺睘鍚屾剰涔�",
-    departmentName: "ICU",
-    contactPerson: "瀛欐姢澹�",
-    contactPhone: "13700137000",
-    redCrossOrg: "闈掑矝甯傜孩鍗佸瓧浼�",
-    acquisitionOrg: "闈掑矝甯傚櫒瀹樿幏鍙栫粍缁�",
-    transportStatus: "not_transported", // 杞繍鐘舵�侊細not_transported-鏈浆杩�, transporting-杞繍涓�, completed-宸插畬鎴�
-    transportOrderNo: "", // 杞繍鍗曞彿
-    transportTime: "", // 杞繍鏃堕棿
-    transportDetails: null, // 杞繍璇︽儏
-  },
-  {
-    id: 5,
-    donorNo: "DON20240310005",
-    hospitalName: "闈掑矝鐪肩鍖婚櫌",
-    hospitalLogo: "/static/hospital/yanke.jpg",
-    caseType: "瑙掕啘鎹愮尞妗堜緥",
-    donorName: "瀛欎竷",
-    idCardNo: "370203199205187896",
-    gender: "鐢�",
-    age: 32,
-    bloodType: "O鍨�",
-    diagnosis: "瑙嗙綉鑶滄瘝缁嗚優鐦�",
-    reportTime: "2024-03-10 08:15",
-    reporterName: "鐪肩寮犲尰鐢�",
-    status: "read",
-    statusText: "宸查槄璇�",
-    reviewTime: "2024-03-11 14:30",
-    reviewerName: "瀹℃牳涓撳憳A",
-    departmentName: "鐪肩",
-    contactPerson: "鍛ㄦ姢澹�",
-    contactPhone: "13500135000",
-    redCrossOrg: "闈掑矝甯傜孩鍗佸瓧浼�",
-    acquisitionOrg: "闈掑矝甯傜溂搴�",
-    transportStatus: "not_transported", // 杞繍鐘舵�侊細not_transported-鏈浆杩�, transporting-杞繍涓�, completed-宸插畬鎴�
-    transportOrderNo: "", // 杞繍鍗曞彿
-    transportTime: "", // 杞繍鏃堕棿
-    transportDetails: null, // 杞繍璇︽儏
-  },
-  {
-    id: 6,
-    donorNo: "DON20240305006",
-    hospitalName: "闈掑矝鍎跨鍖婚櫌",
-    hospitalLogo: "/static/hospital/children.jpg",
-    caseType: "鍣ㄥ畼鎹愮尞妗堜緥",
-    donorName: "鍛ㄥ叓",
-    idCardNo: "370211201802153248",
-    gender: "濂�",
-    age: 6,
-    bloodType: "A鍨�",
-    diagnosis: "鍏堝ぉ鎬у績鑴忕梾",
-    reportTime: "2024-03-05 11:25",
-    reporterName: "鍎跨鏉庡尰鐢�",
-    status: "reported",
-    statusText: "宸蹭笂鎶�",
-    departmentName: "鍎跨ICU",
-    contactPerson: "鍚存姢澹�",
-    contactPhone: "13400134000",
-    redCrossOrg: "闈掑矝甯傜孩鍗佸瓧浼�",
-    acquisitionOrg: "闈掑矝甯傚櫒瀹樿幏鍙栫粍缁�",
-    transportStatus: "not_transported", // 杞繍鐘舵�侊細not_transported-鏈浆杩�, transporting-杞繍涓�, completed-宸插畬鎴�
-    transportOrderNo: "", // 杞繍鍗曞彿
-    transportTime: "", // 杞繍鏃堕棿
-    transportDetails: null, // 杞繍璇︽儏
-  },
-]);
+
 // 杞繍鐘舵�佹槧灏�
 const transportStatusMap = {
   not_transported: {
@@ -541,16 +381,186 @@
   completed: { text: "宸插畬鎴�", color: "success", class: "completed" },
 };
 
-// 绛涢�夎褰昜3](@ref)
+// 鏁版嵁鏄犲皠鍑芥暟
+// 鏁版嵁鏄犲皠鍑芥暟
+const mapApiDataToCaseItem = (apiData) => {
+  const statusMap = {
+    1: { status: "reported", statusText: "宸蹭笂鎶�" },
+    2: { status: "read", statusText: "宸查槄璇�" },
+    3: { status: "agreed", statusText: "宸插悓鎰�" },
+    4: { status: "rejected", statusText: "宸查┏鍥�" },
+  };
+
+  const transportStatusMap = {
+    1: "not_transported",
+    2: "transporting",
+    3: "completed",
+    4: "not_transported",
+    5: "not_transported",
+  };
+
+  const statusInfo = statusMap[apiData.reportStatus] || statusMap["1"];
+
+  // 澶勭悊杞繍淇℃伅 - 鏇村姞鍋ュ.鐨勫鐞�
+  let transportDetails = null;
+  let transportStatus = "not_transported";
+  let transportOrderNo = "";
+  let transportTime = "";
+
+  // 浼樺厛浠� serviceTransport 鑾峰彇杞繍淇℃伅
+  if (
+    apiData.serviceTransport &&
+    Array.isArray(apiData.serviceTransport) &&
+    apiData.serviceTransport.length > 0
+  ) {
+    const transport = apiData.serviceTransport[0];
+    transportDetails = {
+      driver: transport.driver || "",
+      vehicle: transport.vehicle || "",
+      phone: transport.driverPhone || "",
+      currentLocation: transport.transportStartPlace || "",
+      estimatedTime: transport.estimatedTime || "",
+      completedTime: transport.completedTime || "",
+    };
+    transportStatus =
+      transportStatusMap[transport.transitStatus] || "not_transported";
+    transportOrderNo = transport.id || "";
+    transportTime = transport.transportStartTime || "";
+  }
+
+  // 濡傛灉鐩存帴鏈夎浆杩愪俊鎭紝涔熻繘琛屽鐞�
+  if (apiData.transportOrderNo) {
+    transportOrderNo = apiData.transportOrderNo;
+  }
+  if (apiData.transportStartTime) {
+    transportTime = apiData.transportStartTime;
+  }
+  if (apiData.transitStatus) {
+    transportStatus =
+      transportStatusMap[apiData.transitStatus] || "not_transported";
+  }
+
+  return {
+    id: apiData.id || apiData.donatebaseinfoReportId,
+    donorNo: apiData.caseNo,
+    hospitalName: apiData.treatmenthospitalname,
+    hospitalLogo: "/static/hospital/default.jpg",
+    caseType: "鍣ㄥ畼鎹愮尞妗堜緥",
+    donorName: apiData.name,
+    idCardNo: apiData.idcardno,
+    gender:
+      dict.value.sys_user_sex?.find((item) => item.dictValue === apiData.sex)
+        ?.dictLabel || apiData.sex,
+    age: apiData.age,
+    bloodType:
+      dict.value.sys_BloodType?.find(
+        (item) => item.dictValue === apiData.bloodType
+      )?.dictLabel || apiData.bloodType,
+    diagnosis: apiData.diagnosisname,
+    reportTime: apiData.reporttime,
+    reporterName: apiData.reportername,
+    reviewTime: apiData.reviewTime,
+    reviewerName: apiData.reviewerName,
+    departmentName: apiData.treatmentdeptname,
+    contactPerson: apiData.userName || apiData.contactPerson,
+    contactPhone: apiData.phone,
+    ...statusInfo,
+    transportStatus: transportStatus,
+    transportOrderNo: transportOrderNo,
+    transportTime: transportTime,
+    transportDetails: transportDetails,
+  };
+};
+
+// 鐢熷懡鍛ㄦ湡
+onLoad(async (options) => {
+  // 鑾峰彇瀛楀吀鏁版嵁
+  dict.value = await useDict(
+    "sys_IDType",
+    "sys_user_sex",
+    "sys_BloodType",
+    "sys_DiseaseType"
+  );
+
+  // 鍔犺浇鏁版嵁
+  await loadInitialData();
+});
+
+onShow(() => {
+  const transportUpdate = uni.getStorageSync("transportStatusUpdate");
+  if (transportUpdate) {
+    updateTransportStatus(transportUpdate.orderNo, transportUpdate.status);
+    uni.removeStorageSync("transportStatusUpdate");
+  }
+});
+
+// 鏁版嵁鍔犺浇鍑芥暟
+const loadInitialData = async () => {
+  loading.value = true;
+  try {
+    await Promise.all([donatebaseinforeportList(), donateTotal()]);
+  } catch (error) {
+    console.error("鍒濆鍖栨暟鎹け璐�:", error);
+  } finally {
+    loading.value = false;
+  }
+};
+
+// 鑾峰彇妗堜緥鍒楄〃
+const donatebaseinforeportList = async () => {
+  try {
+    const params = {
+      pageNum: pageNum.value,
+      pageSize: pageSize.value,
+    };
+
+    const res = await uni.$uapi.post(
+      "/project/donatebaseinforeport/list",
+      params
+    );
+    console.log(res, "res");
+
+    const mappedData = res.map((item) => mapApiDataToCaseItem(item));
+
+    if (pageNum.value === 1) {
+      cases.value = mappedData;
+    } else {
+      cases.value = [...cases.value, ...mappedData];
+    }
+
+    hasMore.value = pageNum.value * pageSize.value < res.total;
+    total.value = res.total;
+  } catch (error) {
+    console.error("鑾峰彇妗堜緥鍒楄〃澶辫触:", error);
+    uni.showToast({
+      title: "缃戠粶璇锋眰澶辫触",
+      icon: "none",
+    });
+  }
+};
+
+// 鑾峰彇缁熻鏁版嵁
+const donateTotal = async () => {
+  try {
+    const res = await uni.$uapi.post("/project/donatebaseinforeport/getTotal");
+    stats.value = {
+      totalCases: res["1"] || 0,
+      readCases: res["2"] || 0,
+      agreedCases: res["3"] || 0,
+    };
+  } catch (error) {
+    console.error("鑾峰彇缁熻鏁版嵁澶辫触:", error);
+  }
+};
+
+// 璁$畻灞炴�э細绛涢�夎褰�
 const filteredCases = computed(() => {
   let result = cases.value;
 
-  // 鐘舵�佺瓫閫�
   if (currentType.value !== "all") {
     result = result.filter((caseItem) => caseItem.status === currentType.value);
   }
 
-  // 鏃ユ湡绛涢��
   if (startDate.value && endDate.value) {
     result = result.filter((caseItem) => {
       const caseDate = caseItem.reportTime.split(" ")[0];
@@ -561,47 +571,11 @@
   return result;
 });
 
-// 鍒嗛〉鐩稿叧
-const hasMore = ref(true);
-const refreshing = ref(false);
-// 鍒涘缓杞繍鍗�
-const createTransportOrder = (caseItem) => {
-  console.log(caseItem);
-
-  uni.navigateTo({
-    url: `/pages/case/transferinfo?caseId=${caseItem.id}&donorNo=${caseItem.donorNo}`,
-  });
-};
-
-// 鏌ョ湅杞繍璇︽儏
-const viewTransportDetail = (caseItem) => {
-  uni.navigateTo({
-    url: `/pages/transport/detail?orderNo=${caseItem.transportOrderNo}`,
-  });
-};
-
-// 瀹炴椂璺熻釜
-const trackTransport = (caseItem) => {
-  uni.navigateTo({
-    url: `/pages/transport/track?orderNo=${caseItem.transportOrderNo}`,
-  });
-};
-
-// 鏇存柊杞繍鐘舵�侊紙鐢ㄤ簬浠庤浆杩愰〉闈㈣繑鍥炴椂鍒锋柊鏁版嵁锛�
-const updateTransportStatus = (orderNo, newStatus) => {
-  const caseItem = cases.value.find(
-    (item) => item.transportOrderNo === orderNo
-  );
-  if (caseItem) {
-    caseItem.transportStatus = newStatus;
-  }
-};
-// 閫夋嫨绫诲瀷
+// 浜嬩欢澶勭悊鍑芥暟
 const selectType = (type) => {
   currentType.value = type;
 };
 
-// 鏃ユ湡閫夋嫨
 const onStartDateChange = (e) => {
   startDate.value = e.detail.value;
 };
@@ -610,28 +584,67 @@
   endDate.value = e.detail.value;
 };
 
-// 鏌ョ湅璇︽儏
+// 鍒锋柊鍜屽姞杞芥洿澶�
+const onRefresh = async () => {
+  refreshing.value = true;
+  pageNum.value = 1;
+  await donatebaseinforeportList();
+  setTimeout(() => {
+    refreshing.value = false;
+  }, 1000);
+};
+
+const onLoadMore = async () => {
+  if (!hasMore.value || loading.value) return;
+  pageNum.value += 1;
+  await donatebaseinforeportList();
+};
+
+// 鍏朵粬鍔熻兘鍑芥暟锛堜繚鎸佸師鏈夐�昏緫锛�
+const createTransportOrder = (caseItem) => {
+  uni.navigateTo({
+    url: `/pages/case/transferinfo?caseId=${caseItem.id}&donorNo=${caseItem.donorNo}`,
+  });
+};
+
+const viewTransportDetail = (caseItem) => {
+  uni.navigateTo({
+    url: `/pages/transport/detail?orderNo=${caseItem.transportOrderNo}`,
+  });
+};
+
+const trackTransport = (caseItem) => {
+  uni.navigateTo({
+    url: `/pages/transport/track?orderNo=${caseItem.transportOrderNo}`,
+  });
+};
+
+const updateTransportStatus = (orderNo, newStatus) => {
+  const caseItem = cases.value.find(
+    (item) => item.transportOrderNo === orderNo
+  );
+  if (caseItem) {
+    caseItem.transportStatus = newStatus;
+  }
+};
+
 const viewDetail = (caseItem) => {
   uni.navigateTo({
     url: `/pages/case/detail?id=${caseItem.id}`,
   });
 };
 
-// 鎾ゅ洖妗堜緥[7](@ref)
 const withdrawCase = (caseItem) => {
   currentCase.value = caseItem;
   showWithdrawModal.value = true;
 };
 
-// 纭鎾ゅ洖
 const confirmWithdraw = () => {
   const index = cases.value.findIndex(
     (item) => item.id === currentCase.value.id
   );
   if (index !== -1) {
-    // 浠庡垪琛ㄤ腑绉婚櫎宸叉挙鍥炵殑妗堜緥[4](@ref)
     cases.value.splice(index, 1);
-    // 鏇存柊缁熻鏁版嵁
     stats.value.totalCases -= 1;
     uni.showToast({
       title: "鎾ゅ洖鎴愬姛",
@@ -641,46 +654,20 @@
   showWithdrawModal.value = false;
 };
 
-// 鍙栨秷鎾ゅ洖
 const cancelWithdraw = () => {
   showWithdrawModal.value = false;
 };
 
-// 鏌ョ湅璇︽儏
 const viewDetails = (caseItem) => {
   uni.navigateTo({
     url: `/pages/case/detail?id=${caseItem.id}`,
   });
 };
 
-// 缂栬緫妗堜緥
 const editCase = (caseItem) => {
   uni.navigateTo({
     url: `/pages/case/edit?id=${caseItem.id}`,
   });
-};
-
-// 涓嬫媺鍒锋柊
-const onRefresh = () => {
-  refreshing.value = true;
-  loadCases();
-  setTimeout(() => {
-    refreshing.value = false;
-  }, 1000);
-};
-
-// 鍔犺浇鏇村
-const onLoadMore = () => {
-  if (!hasMore.value) return;
-  loadCases();
-};
-
-// 鍔犺浇璁板綍
-const loadCases = () => {
-  // 杩欓噷璋冪敤API鍔犺浇鏁版嵁
-  setTimeout(() => {
-    hasMore.value = false;
-  }, 1000);
 };
 </script>
 

--
Gitblit v1.9.3