From 631c8f37b449b09d19345b76400a39abdb7800f6 Mon Sep 17 00:00:00 2001
From: WXL <wl_5969728@163.com>
Date: 星期四, 15 一月 2026 15:48:42 +0800
Subject: [PATCH] api封装档案、上报、转运接入

---
 src/views/business/appear/index.vue |  445 ++++++++++++++++++++++++++++++++++---------------------
 1 files changed, 277 insertions(+), 168 deletions(-)

diff --git a/src/views/business/appear/index.vue b/src/views/business/appear/index.vue
index 48ac893..f905c3e 100644
--- a/src/views/business/appear/index.vue
+++ b/src/views/business/appear/index.vue
@@ -8,33 +8,33 @@
         :inline="true"
         class="demo-form-inline"
       >
-        <el-form-item label="鎹愮尞缂栧彿" prop="donorNo">
+        <el-form-item label="妗堜緥缂栧彿" prop="caseNo">
           <el-input
-            v-model="queryParams.donorNo"
-            placeholder="璇疯緭鍏ユ崘鐚紪鍙�"
+            v-model="queryParams.caseNo"
+            placeholder="璇疯緭鍏ユ渚嬬紪鍙�"
             clearable
             style="width: 200px"
           />
         </el-form-item>
-        <el-form-item label="鎹愮尞鑰呭鍚�" prop="donorName">
+        <el-form-item label="鎹愮尞鑰呭鍚�" prop="name">
           <el-input
-            v-model="queryParams.donorName"
+            v-model="queryParams.name"
             placeholder="璇疯緭鍏ユ崘鐚�呭鍚�"
             clearable
             style="width: 200px"
           />
         </el-form-item>
-        <el-form-item label="妗堜緥鐘舵��" prop="status">
+        <el-form-item label="妗堜緥鐘舵��" prop="reportStatus">
           <el-select
-            v-model="queryParams.status"
+            v-model="queryParams.reportStatus"
             placeholder="璇烽�夋嫨鐘舵��"
             clearable
             style="width: 200px"
           >
             <el-option label="鍏ㄩ儴" value="" />
-            <el-option label="寰呭鎵�" value="0" />
-            <el-option label="宸查�氳繃" value="1" />
-            <el-option label="宸茬粓姝�" value="2" />
+            <el-option label="宸查槄璇�" value="2" />
+            <el-option label="宸插悓鎰�" value="3" />
+            <el-option label="宸查┏鍥�" value="4" />
           </el-select>
         </el-form-item>
         <el-form-item>
@@ -48,11 +48,11 @@
 
     <!-- 鎿嶄綔鎸夐挳鍖哄煙 -->
     <el-row :gutter="10" class="mb8">
-      <el-col :span="1.5">
+      <!-- <el-col :span="1.5">
         <el-button type="primary" plain icon="el-icon-plus" @click="handleAdd"
           >鏂板妗堜緥</el-button
         >
-      </el-col>
+      </el-col> -->
 
       <el-col :span="1.5">
         <el-button
@@ -73,34 +73,38 @@
       @selection-change="handleSelectionChange"
     >
       <el-table-column type="selection" width="55" align="center" />
-      <!-- <el-table-column label="搴忓彿" type="index" width="60" align="center"/>
-      <el-table-column label="鎹愮尞缂栧彿" align="center" prop="donorNo" width="140"/> -->
       <el-table-column
         label="涓婃姤鏃堕棿"
         align="center"
-        prop="reportTime"
+        prop="reporttime"
         width="160"
       />
 
       <el-table-column
         label="鎹愮尞鑰呭鍚�"
         align="center"
-        prop="donorName"
+        prop="name"
         width="100"
       />
-      <el-table-column label="鎬у埆" align="center" prop="gender" width="80">
+      <el-table-column label="鎬у埆" align="center" prop="sex" width="80">
         <template slot-scope="scope">
-          <dict-tag :options="genderOptions" :value="scope.row.gender" />
+          <dict-tag
+            :options="dict.type.sys_user_sex"
+            :value="parseInt(scope.row.sex)"
+          />
         </template>
       </el-table-column>
       <el-table-column label="骞撮緞" align="center" prop="age" width="80" />
       <el-table-column label="琛�鍨�" align="center" prop="bloodType" width="80">
         <template slot-scope="scope">
-          <dict-tag :options="bloodTypeOptions" :value="scope.row.bloodType" />
+          <dict-tag
+            :options="dict.type.sys_BloodType"
+            :value="scope.row.bloodtype"
+          />
         </template>
       </el-table-column>
 
-         <el-table-column
+      <el-table-column
         label="GCS璇勫垎"
         align="center"
         prop="gscScore"
@@ -110,20 +114,25 @@
       <el-table-column
         label="鐤剧梾璇婃柇"
         align="center"
-        prop="diagnosis"
+        prop="diagnosisname"
         min-width="200"
         show-overflow-tooltip
       />
       <el-table-column
-        label="涓婃姤鍖婚櫌"
+        label="娌荤枟鍖婚櫌"
         align="center"
-        prop="hospitalName"
+        prop="treatmenthospitalname"
         width="150"
       />
-      <el-table-column label="鐘舵��" align="center" prop="status" width="100">
+      <el-table-column
+        label="鐘舵��"
+        align="center"
+        prop="reportStatus"
+        width="100"
+      >
         <template slot-scope="scope">
-          <el-tag :type="scope.row.status | statusFilter">
-            {{ scope.row.status | statusTextFilter }}
+          <el-tag :type="scope.row.reportStatus | statusFilter">
+            {{ scope.row.reportStatus | statusTextFilter }}
           </el-tag>
         </template>
       </el-table-column>
@@ -147,7 +156,7 @@
             type="text"
             icon="el-icon-check"
             @click="handleApprove(scope.row)"
-            v-if="scope.row.status === '0'"
+            v-if="scope.row.reportStatus === '2'"
             >瀹℃壒</el-button
           >
         </template>
@@ -175,7 +184,6 @@
     </el-dialog>
 
     <!-- 瀹℃壒寮规 -->
-    <!-- 瀹℃壒寮规浼樺寲 -->
     <el-dialog
       title="妗堜緥瀹℃壒"
       :visible.sync="approveOpen"
@@ -205,15 +213,15 @@
           >
             <el-form-item label="瀹℃壒缁撴灉" prop="approveResult">
               <el-radio-group v-model="approveForm.approveResult">
-                <el-radio label="1">閫氳繃</el-radio>
-                <el-radio label="2">缁堟</el-radio>
+                <el-radio label="3">鍚屾剰</el-radio>
+                <el-radio label="4">椹冲洖</el-radio>
               </el-radio-group>
             </el-form-item>
             <el-form-item label="瀹℃壒鎰忚" prop="approveOpinion">
               <el-input
                 type="textarea"
                 v-model="approveForm.approveOpinion"
-                placeholder="璇疯緭鍏ヨ缁嗙殑瀹℃壒鎰忚锛屽寘鎷�氳繃鎴栫粓姝㈢殑鐞嗙敱"
+                placeholder="璇疯緭鍏ヨ缁嗙殑瀹℃壒鎰忚锛屽寘鎷�氳繃鎴栭┏鍥炵殑鐞嗙敱"
                 :rows="6"
                 maxlength="500"
                 show-word-limit
@@ -233,11 +241,17 @@
 
 <script>
 import CaseDetail from "./caseDetail";
-import CaseDetailPreview from "./CaseDetailPreview";
+import {
+  donateList,
+  donateInfo,
+  donateDel,
+  donateEdit
+} from "@/api/businessApi/index";
+
 export default {
   name: "CaseList",
-  components: { CaseDetail, CaseDetailPreview },
-
+  components: { CaseDetail },
+  dicts: ["sys_user_sex", "sys_BloodType"],
   data() {
     return {
       // 閬僵灞�
@@ -276,14 +290,14 @@
       queryParams: {
         pageNum: 1,
         pageSize: 10,
-        donorNo: undefined,
-        donorName: undefined,
-        status: undefined
+        caseNo: undefined,
+        name: undefined,
+        reportStatus: undefined
       },
       // 瀹℃壒琛ㄥ崟
       approveForm: {
-        caseId: null,
-        approveResult: "1",
+        id: null,
+        approveResult: "3",
         approveOpinion: ""
       },
       // 瀹℃壒琛ㄥ崟楠岃瘉
@@ -298,21 +312,23 @@
     };
   },
   filters: {
-    statusFilter(status) {
+    statusFilter(reportStatus) {
       const statusMap = {
-        "0": "warning", // 寰呭鎵�
-        "1": "success", // 宸查�氳繃
-        "2": "danger" // 宸茬粓姝�
+        "1": "info", // 宸蹭笂鎶�
+        "2": "warning", // 宸查槄璇伙紙寰呭鎵癸級
+        "3": "success", // 宸插悓鎰�
+        "4": "danger" // 宸查┏鍥�
       };
-      return statusMap[status];
+      return statusMap[reportStatus] || "info";
     },
-    statusTextFilter(status) {
+    statusTextFilter(reportStatus) {
       const statusMap = {
-        "0": "寰呭鎵�",
-        "1": "宸查�氳繃",
-        "2": "宸茬粓姝�"
+        "1": "宸蹭笂鎶�",
+        "2": "宸查槄璇�",
+        "3": "宸插悓鎰�",
+        "4": "宸查┏鍥�"
       };
-      return statusMap[status];
+      return statusMap[reportStatus] || "鏈煡鐘舵��";
     }
   },
   created() {
@@ -320,162 +336,255 @@
   },
   methods: {
     /** 鏌ヨ妗堜緥鍒楄〃 */
-    getList() {
+    async getList() {
       this.loading = true;
-      // 妯℃嫙API璋冪敤寤惰繜
-      setTimeout(() => {
-        // 娴嬭瘯鏁版嵁
-        this.caseList = [
-          {
-            id: 1,
-            donorNo: "DON20241219001",
-            donorName: "寮犱笁",
-            gender: "2",
-            age: 38,
-            bloodType: "A",
-            gscScore:'1',
-            diagnosis:
-              "鑴戝浼ゅ鑷磋剳姝讳骸锛岀粡鎶㈡晳鏃犳晥瀹e竷鑴戞浜°�傚灞炲悓鎰忓櫒瀹樻崘鐚��",
-            hospitalName: "闈掑矝澶у闄勫睘鍖婚櫌",
-            status: "0",
-            reportTime: "2024-12-19 09:30:00",
-            reporterName: "鏉庡尰鐢�",
-            idCardNo: "370203198510123456",
-            nation: "姹夋棌",
-            phone: "13800138000",
-            address: "灞变笢鐪侀潚宀涘競甯傚崡鍖洪娓腑璺�100鍙�",
-            inpatientNo: "ZY20241219001",
-            departmentName: "绁炵粡澶栫",
-            doctorName: "鐜嬩富浠�",
-            infectiousDisease: "鏃�",
-            medicalRecord:
-              "鎮h�呭洜浜ら�氫簨鏁呭鑷翠弗閲嶈剳澶栦激锛岀粡鎶㈡晳鏃犳晥瀹e竷鑴戞浜°��",
-            hospitalLevel: "涓夌骇鐢茬瓑",
-            contactPerson: "寮犳姢澹�",
-            contactPhone: "13900139000",
-            hospitalAddress: "灞变笢鐪侀潚宀涘競甯傚崡鍖烘睙鑻忚矾1鍙�"
-          },
-          {
-            id: 2,
-            donorNo: "DON20241218001",
-            donorName: "鏉庡洓",
-            gender: "1",
-            age: 45,
-            bloodType: "O",
-            gscScore:'3',
-            diagnosis: "鎬ユ�у績鑲屾姝伙紝蹇冭剰鍔熻兘琛扮",
-            hospitalName: "闈掑矝甯傜珛鍖婚櫌",
-            status: "1",
-            reportTime: "2024-12-18 14:20:00",
-            approveTime: "2024-12-18 16:30:00",
-            reporterName: "鍒樺尰鐢�",
-            approverName: "瀹℃牳涓撳憳A",
-            approveOpinion: "璧勬枡榻愬叏锛岀鍚堟崘鐚潯浠讹紝鍚屾剰閫氳繃銆�"
-          },
-          {
-            id: 3,
-            donorNo: "DON20241217001",
-            donorName: "鐜嬩簲",
-            gender: "2",
-            age: 52,
-            bloodType: "B",
-            gscScore:'6',
-            diagnosis: "棰呭唴鍑鸿锛岃剳骞插姛鑳戒抚澶�",
-            hospitalName: "闈掑矝鐪肩鍖婚櫌",
-            status: "2",
-            reportTime: "2024-12-17 10:15:00",
-            approveTime: "2024-12-17 14:20:00",
-            reporterName: "闄堝尰鐢�",
-            approverName: "瀹℃牳涓撳憳B",
-            approveOpinion: "瀹跺睘鍚屾剰涔︿笉瀹屾暣锛岄渶琛ュ厖鏉愭枡鍚庨噸鏂版彁浜ゃ��"
-          },
-          {
-            id: 4,
-            donorNo: "DON20241216001",
-            donorName: "璧靛叚",
-            gender: "1",
-            age: 28,
-            bloodType: "AB",
-            gscScore:'10',
-            diagnosis: "閲嶅瀷棰呰剳鎹熶激锛屽鍣ㄥ畼鍔熻兘琛扮",
-            hospitalName: "闈掑矝鍎跨鍖婚櫌",
-            status: "0",
-            reportTime: "2024-12-16 16:45:00",
-            reporterName: "瀛欏尰鐢�"
-          }
-        ];
+      try {
+        const response = await donateList(this.queryParams);
+        this.caseList = response.rows || response.data || [];
+        this.total = response.total || this.caseList.length;
+      } catch (error) {
+        console.error("鑾峰彇妗堜緥鍒楄〃澶辫触:", error);
+        this.$modal.msgError("鑾峰彇妗堜緥鍒楄〃澶辫触");
+        // 妯℃嫙鏁版嵁
+        this.caseList = this.getMockData();
         this.total = this.caseList.length;
+      } finally {
         this.loading = false;
-      }, 500);
+      }
     },
+
+    /** 妯℃嫙鏁版嵁 */
+    getMockData() {
+      return [
+        {
+          id: 1,
+          caseNo: "DON20241219001",
+          name: "寮犱笁",
+          sex: "0",
+          age: 38,
+          bloodType: "A",
+          gscScore: "1",
+          diagnosisname:
+            "鑴戝浼ゅ鑷磋剳姝讳骸锛岀粡鎶㈡晳鏃犳晥瀹e竷鑴戞浜°�傚灞炲悓鎰忓櫒瀹樻崘鐚��",
+          treatmenthospitalname: "闈掑矝澶у闄勫睘鍖婚櫌",
+          reportStatus: "2",
+          reporttime: "2024-12-19 09:30:00",
+          reportername: "鏉庡尰鐢�",
+          idcardno: "370203198510123456",
+          nation: "姹夋棌",
+          phone: "13800138000",
+          registeraddress: "灞变笢鐪侀潚宀涘競甯傚崡鍖洪娓腑璺�100鍙�",
+          inpatientno: "ZY20241219001",
+          treatmentdeptname: "绁炵粡澶栫",
+          doctorname: "鐜嬩富浠�",
+          infectious: "鏃�",
+          illnessoverview:
+            "鎮h�呭洜浜ら�氫簨鏁呭鑷翠弗閲嶈剳澶栦激锛岀粡鎶㈡晳鏃犳晥瀹e竷鑴戞浜°��",
+          hospitalLevel: "涓夌骇鐢茬瓑",
+          contactperson: "寮犳姢澹�",
+          contactphone: "13900139000",
+          hospitalAddress: "灞变笢鐪侀潚宀涘競甯傚崡鍖烘睙鑻忚矾1鍙�"
+        },
+        {
+          id: 2,
+          caseNo: "DON20241218001",
+          name: "鏉庡洓",
+          sex: "0",
+          age: 45,
+          bloodType: "O",
+          gscScore: "3",
+          diagnosisname: "鎬ユ�у績鑲屾姝伙紝蹇冭剰鍔熻兘琛扮",
+          treatmenthospitalname: "闈掑矝甯傜珛鍖婚櫌",
+          reportStatus: "3",
+          reporttime: "2024-12-18 14:20:00",
+          approvetime: "2024-12-18 16:30:00",
+          reportername: "鍒樺尰鐢�",
+          approvername: "瀹℃牳涓撳憳A",
+          approveopinion: "璧勬枡榻愬叏锛岀鍚堟崘鐚潯浠讹紝鍚屾剰閫氳繃銆�"
+        }
+      ];
+    },
+
     // 澶氶�夋閫変腑鏁版嵁
     handleSelectionChange(selection) {
       this.ids = selection.map(item => item.id);
       this.single = selection.length !== 1;
       this.multiple = !selection.length;
     },
+
     /** 鎼滅储鎸夐挳鎿嶄綔 */
     handleQuery() {
       this.queryParams.pageNum = 1;
       this.getList();
     },
+
     /** 閲嶇疆鎸夐挳鎿嶄綔 */
     resetQuery() {
       this.resetForm("queryForm");
       this.handleQuery();
     },
+
     /** 璇︽儏鎸夐挳鎿嶄綔 */
-    handleDetail(row) {
-      this.currentCase = row;
-      this.detailTitle = `妗堜緥璇︽儏 - ${row.donorNo}`;
-      this.detailOpen = true;
+    async handleDetail(row) {
+      try {
+        // 鍏堣幏鍙栨渚嬭鎯�
+        const response = await donateInfo(row.id);
+        this.currentCase = response.data || response || row;
+
+        // 濡傛灉鐘舵�佹槸"宸蹭笂鎶�"(1)锛屽垯浣跨敤瀹屾暣鏁版嵁鏇存柊涓�"宸查槄璇�"(2)
+        if (this.currentCase.reportStatus === "1") {
+          try {
+            // 浣跨敤瀹屾暣鐨勬渚嬫暟鎹綔涓烘洿鏂板熀纭�锛岀‘淇濇墍鏈夊瓧娈甸兘琚繚鐣�
+            const updateData = {
+              ...this.currentCase, // 灞曞紑鎵�鏈夌幇鏈夊瓧娈�
+              reportStatus: "2", // 鏇存柊鐘舵�佷负宸查槄璇�
+              updateTime: new Date()
+                .toISOString()
+                .replace("T", " ")
+                .substring(0, 19),
+              updateBy: "褰撳墠鐢ㄦ埛" // 娣诲姞鏇存柊浜轰俊鎭�
+            };
+
+            await donateEdit(updateData);
+
+            // 鏇存柊鏈湴鏁版嵁鍜屽綋鍓嶆樉绀虹殑鏁版嵁
+            this.currentCase.reportStatus = "2";
+            this.currentCase.updateTime = updateData.updateTime;
+            row.reportStatus = "2"; // 鏇存柊鍒楄〃涓殑鐘舵��
+
+            this.$modal.msgSuccess("鐘舵�佸凡鏇存柊涓哄凡闃呰");
+          } catch (updateError) {
+            console.error("鐘舵�佹洿鏂板け璐�:", updateError);
+            this.$modal.msgError("鐘舵�佹洿鏂板け璐ワ紝浣嗗皢缁х画鏄剧ず璇︽儏");
+            // 鏇存柊澶辫触鏃讹紝缁х画浣跨敤鍘熷鐘舵�佹樉绀鸿鎯�
+          }
+        }
+
+        this.detailTitle = `妗堜緥璇︽儏 - ${this.currentCase.caseNo ||
+          row.caseNo}`;
+        this.detailOpen = true;
+      } catch (error) {
+        console.error("鑾峰彇妗堜緥璇︽儏澶辫触:", error);
+        // 濡傛灉鑾峰彇璇︽儏澶辫触锛屼娇鐢ㄨ鏁版嵁浣滀负鍚庡
+        this.currentCase = row;
+        this.detailTitle = `妗堜緥璇︽儏 - ${row.caseNo}`;
+        this.detailOpen = true;
+
+        // 鍗充娇鑾峰彇璇︽儏澶辫触锛屼篃灏濊瘯鏇存柊鐘舵�侊紙浣跨敤琛屾暟鎹級
+        if (row.reportStatus === "1") {
+          try {
+            const updateData = {
+              id: row.id,
+              reportStatus: "2",
+              updateTime: new Date()
+                .toISOString()
+                .replace("T", " ")
+                .substring(0, 19),
+              updateBy: "褰撳墠鐢ㄦ埛"
+              // 娉ㄦ剰锛氳繖閲屽彧鑳戒紶閫掗儴鍒嗗瓧娈碉紝鍥犱负璇︽儏鑾峰彇澶辫触浜�
+            };
+
+            await donateEdit(updateData);
+            row.reportStatus = "2";
+            this.currentCase.reportStatus = "2";
+            this.$modal.msgSuccess("鐘舵�佸凡鏇存柊涓哄凡闃呰");
+          } catch (updateError) {
+            console.error("鐘舵�佹洿鏂板け璐�:", updateError);
+          }
+        }
+      }
     },
-    // 鍦ㄧ埗缁勪欢涓洿鏂板鎵规柟娉�
-    handleApprove(row) {
-      this.currentCase = row;
-      this.approveForm.caseId = row.id;
-      this.approveForm.approveResult = "1";
-      this.approveForm.approveOpinion = "";
-      this.approveOpen = true;
+
+    /** 瀹℃壒鎸夐挳鎿嶄綔 */
+    async handleApprove(row) {
+      try {
+        // 鍏堣幏鍙栨渚嬭鎯呮暟鎹紝纭繚鏈夊畬鏁存暟鎹�
+        const response = await donateInfo(row.id);
+        this.currentCase = response.data || response || row;
+
+        this.approveForm.id = row.id;
+        this.approveForm.approveResult = "3";
+        this.approveForm.approveOpinion = "";
+
+        this.$nextTick(() => {
+          if (this.$refs.approveForm) {
+            this.$refs.approveForm.clearValidate();
+          }
+        });
+
+        this.approveOpen = true;
+      } catch (error) {
+        console.error("鑾峰彇妗堜緥璇︽儏澶辫触:", error);
+        // 濡傛灉鑾峰彇璇︽儏澶辫触锛屼娇鐢ㄨ鏁版嵁浣滀负鍚庡
+        this.currentCase = row;
+        this.approveForm.id = row.id;
+        this.approveForm.approveResult = "3";
+        this.approveForm.approveOpinion = "";
+        this.approveOpen = true;
+        this.$modal.msgError("鑾峰彇璇︽儏澶辫触锛屼絾宸叉墦寮�瀹℃壒绐楀彛");
+      }
     },
 
     /** 鎻愪氦瀹℃壒 */
-    submitApprove() {
-      this.$refs["approveForm"].validate(valid => {
+    async submitApprove() {
+      try {
+        const valid = await this.$refs.approveForm.validate();
         if (valid) {
-          // 妯℃嫙瀹℃壒鎻愪氦
+          // 浣跨敤瀹屾暣鐨勬渚嬫暟鎹綔涓哄熀纭�锛岀‘淇濇墍鏈夊瓧娈甸兘琚繚鐣�
+          const approveData = {
+            ...this.currentCase, // 灞曞紑鎵�鏈夌幇鏈夊瓧娈�
+            reportStatus: this.approveForm.approveResult,
+            approveOpinion: this.approveForm.approveOpinion,
+            approvername: "褰撳墠鐢ㄦ埛", // 瀹為檯椤圭洰涓簲璇ヨ幏鍙栧綋鍓嶇櫥褰曠敤鎴�
+            approvetime: new Date()
+              .toISOString()
+              .replace("T", " ")
+              .substring(0, 19),
+            updateTime: new Date()
+              .toISOString()
+              .replace("T", " ")
+              .substring(0, 19),
+            updateBy: "褰撳墠鐢ㄦ埛"
+          };
+
+          // 绉婚櫎鍙兘涓嶉渶瑕佺殑瀛楁锛堟牴鎹疄闄匒PI闇�姹傝皟鏁达級
+          delete approveData.createTime; // 鍒涘缓鏃堕棿涓嶅簲琚洿鏂�
+          delete approveData.createBy; // 鍒涘缓浜轰笉搴斿彉
+
+          await donateEdit(approveData);
           this.$modal.msgSuccess("瀹℃壒鎴愬姛");
           this.approveOpen = false;
-          // 鏇存柊妗堜緥鐘舵��
-          const caseItem = this.caseList.find(
-            item => item.id === this.approveForm.caseId
-          );
-          if (caseItem) {
-            caseItem.status = this.approveForm.approveResult;
-            caseItem.approveTime = new Date().toLocaleString();
-            caseItem.approverName = "褰撳墠鐢ㄦ埛";
-            caseItem.approveOpinion = this.approveForm.approveOpinion;
-          }
+          this.getList(); // 閲嶆柊鍔犺浇鍒楄〃
         }
-      });
+      } catch (error) {
+        console.error("瀹℃壒澶辫触:", error);
+        if (error !== "cancel") {
+          this.$modal.msgError("瀹℃壒澶辫触");
+        }
+      }
     },
+
     /** 鏂板鎸夐挳鎿嶄綔 */
     handleAdd() {
       this.$router.push("/case/add");
     },
 
     /** 鍒犻櫎鎸夐挳鎿嶄綔 */
-    handleDelete(row) {
+    async handleDelete(row) {
       const ids = row.id || this.ids;
-      this.$modal
-        .confirm('鏄惁纭鍒犻櫎浣忛櫌鍙蜂负"' + ids + '"鐨勬暟鎹」锛�')
-        .then(() => {
-          // 妯℃嫙鍒犻櫎鎿嶄綔
-          this.caseList = this.caseList.filter(item => !ids.includes(item.id));
-          this.total = this.caseList.length;
-          this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
-        })
-        .catch(() => {});
+      try {
+        await this.$modal.confirm(
+          '鏄惁纭鍒犻櫎妗堜緥缂栧彿涓�"' + ids + '"鐨勬暟鎹」锛�'
+        );
+        await donateDel(ids);
+        this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+        this.getList();
+      } catch (error) {
+        if (error !== "cancel") {
+          console.error("鍒犻櫎澶辫触:", error);
+          this.$modal.msgError("鍒犻櫎澶辫触");
+        }
+      }
     }
   }
 };

--
Gitblit v1.9.3