From e2eb5acfb3961315df21abfe6f33a959699b562b Mon Sep 17 00:00:00 2001
From: WXL <wl_5969728@163.com>
Date: 星期二, 30 十二月 2025 09:49:07 +0800
Subject: [PATCH] 页面维护

---
 src/views/project/DonationProcess/index.vue |  265 ++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 190 insertions(+), 75 deletions(-)

diff --git a/src/views/project/DonationProcess/index.vue b/src/views/project/DonationProcess/index.vue
index 516cc50..2e0fbd2 100644
--- a/src/views/project/DonationProcess/index.vue
+++ b/src/views/project/DonationProcess/index.vue
@@ -28,18 +28,29 @@
           />
         </el-form-item>
         <el-form-item label="鐘舵��" prop="recordstate">
-          <el-select v-model="queryParams.recordstate" placeholder="璇烽�夋嫨鐘舵��" clearable size="small">
+          <el-select
+            v-model="queryParams.recordstate"
+            placeholder="璇烽�夋嫨鐘舵��"
+            clearable
+            size="small"
+          >
             <el-option label="鍏ㄩ儴" value="" />
-            <el-option label="寰呭鏍�" value="0" />
-            <el-option label="宸插鏍�" value="1" />
+            <el-option label="缁存姢涓�" value="0" />
+            <el-option label="宸插畬鎴�" value="1" />
             <el-option label="宸茬粓姝�" value="99" />
           </el-select>
         </el-form-item>
         <el-form-item>
-          <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"
+          <el-button
+            type="primary"
+            icon="el-icon-search"
+            size="mini"
+            @click="handleQuery"
             >鎼滅储</el-button
           >
-          <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">閲嶇疆</el-button>
+          <el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
+            >閲嶇疆</el-button
+          >
         </el-form-item>
       </el-form>
     </el-card>
@@ -63,7 +74,7 @@
             <div class="stat-icon">鈴�</div>
             <div class="stat-info">
               <div class="stat-count">{{ stats.pendingCount }}</div>
-              <div class="stat-label">寰呭鏍�</div>
+              缁存姢涓�
             </div>
           </div>
         </el-card>
@@ -74,7 +85,7 @@
             <div class="stat-icon">鉁�</div>
             <div class="stat-info">
               <div class="stat-count">{{ stats.approvedCount }}</div>
-              <div class="stat-label">宸插鏍�</div>
+              <div class="stat-label">宸插畬鎴�</div>
             </div>
           </div>
         </el-card>
@@ -100,13 +111,25 @@
       :default-sort="{ prop: 'donatetime', order: 'descending' }"
       style="width: 100%; margin-top: 20px;"
     >
-      <el-table-column label="涓婃姤鏃堕棿" align="center" prop="donatetime" width="110" fixed="left">
+      <el-table-column
+        label="涓婃姤鏃堕棿"
+        align="center"
+        prop="donatetime"
+        width="110"
+        fixed="left"
+      >
         <template slot-scope="scope">
           <span>{{ parseTime(scope.row.donatetime, "{y}-{m}-{d}") }}</span>
         </template>
       </el-table-column>
 
-      <el-table-column label="杩涘害" align="center" prop="coreteamassessconclusion" width="100" fixed="left">
+      <el-table-column
+        label="杩涘害"
+        align="center"
+        prop="coreteamassessconclusion"
+        width="100"
+        fixed="left"
+      >
         <template slot-scope="scope">
           <el-tag :type="getStatusTag(scope.row.recordstate)">
             {{ getStatusText(scope.row.recordstate) }}
@@ -118,26 +141,45 @@
 
       <el-table-column label="鎬у埆" align="center" prop="sex" width="80">
         <template slot-scope="scope">
-          <span>{{ scope.row.sex === 1 ? '鐢�' : '濂�' }}</span>
+          <span>{{ scope.row.sex === 1 ? "鐢�" : "濂�" }}</span>
         </template>
       </el-table-column>
 
       <el-table-column label="骞撮緞" align="center" prop="age" width="80" />
 
-      <el-table-column label="璇佷欢鍙风爜" align="center" prop="idcardno" width="180" />
+      <el-table-column
+        label="璇佷欢鍙风爜"
+        align="center"
+        prop="idcardno"
+        width="180"
+      />
 
-      <el-table-column label="鍗忚皟鍛�" align="center" prop="reportername" width="100" />
+      <el-table-column
+        label="鍗忚皟鍛�"
+        align="center"
+        prop="reportername"
+        width="100"
+      />
 
-      <el-table-column label="娌荤枟鍖婚櫌" align="center" prop="treatmenthospitalname" width="150" show-overflow-tooltip />
 
-      <el-table-column label="杞负妗堜緥鏃堕棿" align="center" prop="donatetime" width="110">
+      <el-table-column
+        label="杞负妗堜緥鏃堕棿"
+        align="center"
+        prop="donatetime"
+        width="110"
+      >
         <template slot-scope="scope">
           <span>{{ parseTime(scope.row.donatetime, "{y}-{m}-{d}") }}</span>
         </template>
       </el-table-column>
 
       <!-- 绗竴娆″尰瀛﹁瘎浼� -->
-      <el-table-column label="绗竴娆¤瘎浼扮粨璁�" align="center" prop="coreteamassessconclusion" width="120">
+      <el-table-column
+        label="绗竴娆¤瘎浼扮粨璁�"
+        align="center"
+        prop="coreteamassessconclusion"
+        width="120"
+      >
         <template slot-scope="scope">
           <dict-tag
             :options="dict.type.sys_BaseAssessConclusion"
@@ -146,14 +188,26 @@
         </template>
       </el-table-column>
 
-      <el-table-column label="绗竴娆¤瘎浼版椂闂�" align="center" prop="coreteamassesstime" width="110">
+      <el-table-column
+        label="绗竴娆¤瘎浼版椂闂�"
+        align="center"
+        prop="coreteamassesstime"
+        width="110"
+      >
         <template slot-scope="scope">
-          <span>{{ parseTime(scope.row.coreteamassesstime, "{y}-{m}-{d}") }}</span>
+          <span>{{
+            parseTime(scope.row.coreteamassesstime, "{y}-{m}-{d}")
+          }}</span>
         </template>
       </el-table-column>
 
       <!-- 绗簩娆″尰瀛﹁瘎浼� -->
-      <el-table-column label="绗簩娆¤瘎浼扮粨璁�" align="center" prop="coreteamassessconclusion" width="120">
+      <el-table-column
+        label="绗簩娆¤瘎浼扮粨璁�"
+        align="center"
+        prop="coreteamassessconclusion"
+        width="120"
+      >
         <template slot-scope="scope">
           <dict-tag
             :options="dict.type.sys_BaseAssessConclusion"
@@ -162,19 +216,36 @@
         </template>
       </el-table-column>
 
-      <el-table-column label="绗簩娆¤瘎浼版椂闂�" align="center" prop="coreteamassesstime" width="110">
+      <el-table-column
+        label="绗簩娆¤瘎浼版椂闂�"
+        align="center"
+        prop="coreteamassesstime"
+        width="110"
+      >
         <template slot-scope="scope">
-          <span>{{ parseTime(scope.row.coreteamassesstime, "{y}-{m}-{d}") }}</span>
+          <span>{{
+            parseTime(scope.row.coreteamassesstime, "{y}-{m}-{d}")
+          }}</span>
         </template>
       </el-table-column>
 
-      <el-table-column label="浜插睘纭鏃堕棿" align="center" prop="signdate" width="110">
+      <el-table-column
+        label="浜插睘纭鏃堕棿"
+        align="center"
+        prop="signdate"
+        width="110"
+      >
         <template slot-scope="scope">
           <span>{{ parseTime(scope.row.signdate, "{y}-{m}-{d}") }}</span>
         </template>
       </el-table-column>
 
-      <el-table-column label="浼︾悊瀹℃煡缁撹" align="center" prop="expertconclusion" width="120">
+      <el-table-column
+        label="浼︾悊瀹℃煡缁撹"
+        align="center"
+        prop="expertconclusion"
+        width="120"
+      >
         <template slot-scope="scope">
           <dict-tag
             :options="dict.type.sys_EthicalReview"
@@ -183,27 +254,55 @@
         </template>
       </el-table-column>
 
-      <el-table-column label="浼︾悊瀹℃煡鏃堕棿" align="center" prop="conclusiontime" width="110">
+      <el-table-column
+        label="浼︾悊瀹℃煡鏃堕棿"
+        align="center"
+        prop="conclusiontime"
+        width="110"
+      >
         <template slot-scope="scope">
           <span>{{ parseTime(scope.row.conclusiontime, "{y}-{m}-{d}") }}</span>
         </template>
       </el-table-column>
 
-      <el-table-column label="鍣ㄥ畼鍒嗛厤鏁伴噺" align="center" prop="organcount" width="100" />
+      <el-table-column
+        label="鍣ㄥ畼鍒嗛厤鏁伴噺"
+        align="center"
+        prop="organcount"
+        width="100"
+      />
 
-      <el-table-column label="鑾峰彇瑙佽瘉鏃堕棿" align="center" prop="operationbegtime" width="110">
+      <el-table-column
+        label="鑾峰彇瑙佽瘉鏃堕棿"
+        align="center"
+        prop="operationbegtime"
+        width="110"
+      >
         <template slot-scope="scope">
-          <span>{{ parseTime(scope.row.operationbegtime, "{y}-{m}-{d}") }}</span>
+          <span>{{
+            parseTime(scope.row.operationbegtime, "{y}-{m}-{d}")
+          }}</span>
         </template>
       </el-table-column>
 
-      <el-table-column label="瀹屾垚鐧昏鏃堕棿" align="center" prop="completetime" width="110">
+      <el-table-column
+        label="瀹屾垚鐧昏鏃堕棿"
+        align="center"
+        prop="completetime"
+        width="110"
+      >
         <template slot-scope="scope">
           <span>{{ parseTime(scope.row.completetime, "{y}-{m}-{d}") }}</span>
         </template>
       </el-table-column>
 
-      <el-table-column label="鎹愮尞杩涘害" align="center" prop="workflow" width="120" fixed="right">
+      <el-table-column
+        label="鎹愮尞杩涘害"
+        align="center"
+        prop="workflow"
+        width="120"
+        fixed="right"
+      >
         <template slot-scope="scope">
           <div v-if="!scope.row.terminationCase">
             <dict-tag
@@ -287,7 +386,7 @@
 
 <script>
 // 瀵煎叆妯℃嫙鏁版嵁鐢熸垚宸ュ叿
-import Mock from 'mockjs';
+import Mock from "mockjs";
 
 export default {
   name: "Donatebaseinfo",
@@ -337,27 +436,29 @@
     /** 鐢熸垚妯℃嫙鏁版嵁 */
     generateMockData() {
       const mockTemplate = {
-        'list|15-30': [{
-          'id|+1': 1001,
-          'name': '@cname',
-          'sex|1': [1, 2], // 1:鐢�, 2:濂�
-          'age|18-65': 1,
-          'idcardno': /^[1-9]\d{5}(19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}[\dX]$/,
-          'reportername': '@cname',
-          'treatmenthospitalname': '@ctitle(3, 5)鍖婚櫌',
-          'donatetime': '@datetime("yyyy-MM-dd HH:mm:ss")',
-          'coreteamassessconclusion|1': ['1', '2', '3'], // 璇勪及缁撹
-          'coreteamassesstime': '@datetime("yyyy-MM-dd HH:mm:ss")',
-          'signdate': '@datetime("yyyy-MM-dd HH:mm:ss")',
-          'expertconclusion|1': ['1', '2', '3'], // 浼︾悊瀹℃煡缁撹
-          'conclusiontime': '@datetime("yyyy-MM-dd HH:mm:ss")',
-          'organcount|0-5': 1,
-          'operationbegtime': '@datetime("yyyy-MM-dd HH:mm:ss")',
-          'completetime': '@datetime("yyyy-MM-dd HH:mm:ss")',
-          'workflow|1': ['1', '2', '3', '4', '5'], // 宸ヤ綔娴佺姸鎬�
-          'recordstate|1': ['0', '1', '99'], // 0:寰呭鏍�, 1:宸插鏍�, 99:宸茬粓姝�
-          'terminationCase|1': [true, false]
-        }]
+        "list|15-30": [
+          {
+            "id|+1": 1001,
+            name: "@cname",
+            "sex|1": [1, 2], // 1:鐢�, 2:濂�
+            "age|18-65": 1,
+            idcardno: /^[1-9]\d{5}(19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}[\dX]$/,
+            reportername: "@cname",
+            treatmenthospitalname: "@ctitle(3, 5)鍖婚櫌",
+            donatetime: '@datetime("yyyy-MM-dd HH:mm:ss")',
+            "coreteamassessconclusion|1": ["1", "2", "3"], // 璇勪及缁撹
+            coreteamassesstime: '@datetime("yyyy-MM-dd HH:mm:ss")',
+            signdate: '@datetime("yyyy-MM-dd HH:mm:ss")',
+            "expertconclusion|1": ["1", "2", "3"], // 浼︾悊瀹℃煡缁撹
+            conclusiontime: '@datetime("yyyy-MM-dd HH:mm:ss")',
+            "organcount|0-5": 1,
+            operationbegtime: '@datetime("yyyy-MM-dd HH:mm:ss")',
+            completetime: '@datetime("yyyy-MM-dd HH:mm:ss")',
+            "workflow|1": ["1", "2", "3", "4", "5"], // 宸ヤ綔娴佺姸鎬�
+            "recordstate|1": ["0", "1", "99"], // 0:寰呭鏍�, 1:宸插鏍�, 99:宸茬粓姝�
+            "terminationCase|1": [true, false]
+          }
+        ]
       };
 
       return Mock.mock(mockTemplate).list;
@@ -385,13 +486,14 @@
           );
         }
         if (this.queryParams.recordstate) {
-          filteredData = filteredData.filter(item =>
-            item.recordstate === this.queryParams.recordstate
+          filteredData = filteredData.filter(
+            item => item.recordstate === this.queryParams.recordstate
           );
         }
 
         // 鍒嗛〉澶勭悊
-        const startIndex = (this.queryParams.pageNum - 1) * this.queryParams.pageSize;
+        const startIndex =
+          (this.queryParams.pageNum - 1) * this.queryParams.pageSize;
         const endIndex = startIndex + this.queryParams.pageSize;
         this.donatebaseinfoList = filteredData.slice(startIndex, endIndex);
         this.total = filteredData.length;
@@ -405,40 +507,49 @@
     /** 鏇存柊缁熻鏁版嵁 */
     updateStats(data) {
       this.stats.totalCount = data.length;
-      this.stats.pendingCount = data.filter(item => item.recordstate === '0').length;
-      this.stats.approvedCount = data.filter(item => item.recordstate === '1').length;
-      this.stats.terminatedCount = data.filter(item => item.recordstate === '99').length;
+      this.stats.pendingCount = data.filter(
+        item => item.recordstate === "0"
+      ).length;
+      this.stats.approvedCount = data.filter(
+        item => item.recordstate === "1"
+      ).length;
+      this.stats.terminatedCount = data.filter(
+        item => item.recordstate === "99"
+      ).length;
     },
 
     /** 鑾峰彇鐘舵�佹爣绛炬牱寮� */
     getStatusTag(status) {
       const statusMap = {
-        '0': 'warning',  // 寰呭鏍�
-        '1': 'success',  // 宸插鏍�
-        '99': 'danger'   // 宸茬粓姝�
+        "0": "warning", // 寰呭鏍�
+        "1": "success", // 宸插鏍�
+        "99": "danger" // 宸茬粓姝�
       };
-      return statusMap[status] || 'info';
+      return statusMap[status] || "info";
     },
 
     /** 鑾峰彇鐘舵�佹枃鏈� */
     getStatusText(status) {
       const textMap = {
-        '0': '寰呭鏍�',
-        '1': '宸插鏍�',
-        '99': '宸茬粓姝�'
+        "0": "缁存姢涓�",
+        "1": "宸插畬鎴�",
+        "99": "宸茬粓姝�"
       };
-      return textMap[status] || '鏈煡鐘舵��';
+      return textMap[status] || "鏈煡鐘舵��";
     },
 
     /** 鏃堕棿鏍煎紡鍖� */
     parseTime(time, format) {
-      if (!time) return '-';
+      if (!time) return "-";
       const date = new Date(time);
       const year = date.getFullYear();
-      const month = (date.getMonth() + 1).toString().padStart(2, '0');
-      const day = date.getDate().toString().padStart(2, '0');
+      const month = (date.getMonth() + 1).toString().padStart(2, "0");
+      const day = date
+        .getDate()
+        .toString()
+        .padStart(2, "0");
 
-      if (format === '{y}-{m}-{d}') {
+      if (format === "{y}-{m}-{d}") {
         return `${year}-${month}-${day}`;
       }
       return time;
@@ -481,10 +592,14 @@
     /** 鎻愪氦瀹℃牳 */
     submitApprove() {
       // 妯℃嫙瀹℃牳鎻愪氦
-      const index = this.donatebaseinfoList.findIndex(item => item.id === this.currentRecord.id);
+      const index = this.donatebaseinfoList.findIndex(
+        item => item.id === this.currentRecord.id
+      );
       if (index !== -1) {
-        this.donatebaseinfoList[index].recordstate = this.approveForm.approveResult;
-        this.$message.success('瀹℃牳鎴愬姛');
+        this.donatebaseinfoList[
+          index
+        ].recordstate = this.approveForm.approveResult;
+        this.$message.success("瀹℃牳鎴愬姛");
         this.approveVisible = false;
         this.getList(); // 閲嶆柊鍔犺浇鏇存柊缁熻
       }
@@ -512,19 +627,19 @@
 }
 
 .stats-card.total {
-  border-left: 4px solid #409EFF;
+  border-left: 4px solid #409eff;
 }
 
 .stats-card.pending {
-  border-left: 4px solid #E6A23C;
+  border-left: 4px solid #e6a23c;
 }
 
 .stats-card.approved {
-  border-left: 4px solid #67C23A;
+  border-left: 4px solid #67c23a;
 }
 
 .stats-card.terminated {
-  border-left: 4px solid #F56C6C;
+  border-left: 4px solid #f56c6c;
 }
 
 .stat-content {

--
Gitblit v1.9.3