From 741805d8daa2d2baa0b6b75bc1724488baf9c6bc Mon Sep 17 00:00:00 2001
From: WXL (wul) <wl_5969728@163.com>
Date: 星期一, 15 六月 2026 14:55:10 +0800
Subject: [PATCH] 测试完成

---
 src/views/sfstatistics/percentage/components/DetailDialog.vue |  298 ++++++++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 203 insertions(+), 95 deletions(-)

diff --git a/src/views/sfstatistics/percentage/components/DetailDialog.vue b/src/views/sfstatistics/percentage/components/DetailDialog.vue
index 2209b13..559520a 100644
--- a/src/views/sfstatistics/percentage/components/DetailDialog.vue
+++ b/src/views/sfstatistics/percentage/components/DetailDialog.vue
@@ -18,7 +18,9 @@
           @input="handleSearch"
           @clear="handleSearch"
         />
-        <span style="margin-left: 10px; color: rgb(35, 81, 233); font-size: 16px">
+        <span
+          style="margin-left: 10px; color: rgb(35, 81, 233); font-size: 16px"
+        >
           鍏� {{ displayList.length }} 鏉¤褰�
         </span>
       </div>
@@ -26,12 +28,43 @@
       <div class="examine-jic">
         <div class="jic-value">
           <el-row :gutter="20">
-            <div class="data-list" ref="dataList" @scroll="handleScroll" v-loading="loading">
-              <el-table :data="currentDisplayList" height="660" style="width: 100%">
-                <el-table-column prop="sendname" align="center" label="濮撳悕" width="100" />
-                <el-table-column prop="taskName" align="center" width="200" show-overflow-tooltip label="浠诲姟鍚嶇О" />
+            <div
+              class="data-list"
+              ref="dataList"
+              @scroll="handleScroll"
+              v-loading="loading"
+            >
+              <el-table
+                :data="currentDisplayList"
+                height="660"
+                style="width: 100%"
+              >
+                <el-table-column
+                  prop="sendname"
+                  align="center"
+                  label="濮撳悕"
+                  width="100"
+                />
+                <el-table-column
+                  prop="telcode"
+                  align="center"
+                  label="鑱旂郴鐢佃瘽"
+                  width="100"
+                />
+                <el-table-column
+                  prop="taskName"
+                  align="center"
+                  width="200"
+                  show-overflow-tooltip
+                  label="浠诲姟鍚嶇О"
+                />
 
-                <el-table-column prop="sendstate" align="center" width="200" label="浠诲姟鐘舵��">
+                <el-table-column
+                  prop="sendstate"
+                  align="center"
+                  width="200"
+                  label="浠诲姟鐘舵��"
+                >
                   <template slot-scope="scope">
                     <el-tag
                       :type="getStateTagType(scope.row.sendstate)"
@@ -51,8 +84,14 @@
                   :show-overflow-tooltip="true"
                 >
                   <template slot-scope="scope">
-                    <span v-for="(item, index) in scope.row.preachform" :key="index">
-                      {{ item }}{{ index < scope.row.preachform.length - 1 ? '銆�' : '' }}
+                    <span
+                      v-for="(item, index) in scope.row.preachform"
+                      :key="index"
+                    >
+                      {{ item
+                      }}{{
+                        index < scope.row.preachform.length - 1 ? "銆�" : ""
+                      }}
                     </span>
                   </template>
                 </el-table-column>
@@ -71,35 +110,98 @@
                   width="200"
                   show-overflow-tooltip
                 />
-                <el-table-column label="鍑洪櫌鏃ユ湡" width="200" align="center" key="endtime" prop="endtime">
+                <el-table-column
+                  label="鍑洪櫌鏃ユ湡"
+                  width="200"
+                  align="center"
+                  key="endtime"
+                  prop="endtime"
+                >
                   <template slot-scope="scope">
                     <span>{{ formatTime(scope.row.endtime) }}</span>
                   </template>
                 </el-table-column>
 
-                <el-table-column label="璐d换鎶ゅ+" width="120" align="center" key="nurseName" prop="nurseName" />
-                <el-table-column label="涓绘不鍖荤敓" width="120" align="center" key="drname" prop="drname" />
+                <el-table-column
+                  label="璐d换鎶ゅ+"
+                  width="120"
+                  align="center"
+                  key="nurseName"
+                  prop="nurseName"
+                />
+                <el-table-column
+                  label="涓绘不鍖荤敓"
+                  width="120"
+                  align="center"
+                  key="drname"
+                  prop="drname"
+                />
 
-                <el-table-column label="缁撴灉鐘舵��" align="center" key="excep" prop="excep" width="120">
+                <el-table-column
+                  label="缁撴灉鐘舵��"
+                  align="center"
+                  key="excep"
+                  prop="excep"
+                  width="120"
+                >
                   <template slot-scope="scope">
-                    <dict-tag :options="dict.type.sys_yujing" :value="scope.row.excep" />
+                    <dict-tag
+                      :options="dict.type.sys_yujing"
+                      :value="scope.row.excep"
+                    />
                   </template>
                 </el-table-column>
 
-                <el-table-column label="澶勭悊鎰忚" align="center" key="suggest" prop="suggest" width="120">
+                <el-table-column
+                  label="澶勭悊鎰忚"
+                  align="center"
+                  key="suggest"
+                  prop="suggest"
+                  width="120"
+                >
                   <template slot-scope="scope">
-                    <dict-tag :options="dict.type.sys_suggest" :value="scope.row.suggest" />
+                    <dict-tag
+                      :options="dict.type.sys_suggest"
+                      :value="scope.row.suggest"
+                    />
                   </template>
                 </el-table-column>
 
-                <el-table-column prop="templatename" align="center" label="鏈嶅姟妯℃澘" width="200" show-overflow-tooltip />
-                <el-table-column prop="remark" align="center" label="鏈嶅姟璁板綍" width="200" show-overflow-tooltip />
+                <el-table-column
+                  prop="templatename"
+                  align="center"
+                  label="鏈嶅姟妯℃澘"
+                  width="200"
+                  show-overflow-tooltip
+                />
+                <el-table-column
+                  prop="remark"
+                  align="center"
+                  label="鏈嶅姟璁板綍"
+                  width="200"
+                  show-overflow-tooltip
+                />
 
-                <el-table-column prop="bankcardno" align="center" label="鍛煎彨鐘舵��" width="210" />
+                <el-table-column
+                  prop="bankcardno"
+                  align="center"
+                  label="鍛煎彨鐘舵��"
+                  width="210"
+                />
 
-                <el-table-column label="鎿嶄綔" fixed="right" align="center" width="200" class-name="small-padding fixed-width">
+                <el-table-column
+                  label="鎿嶄綔"
+                  fixed="right"
+                  align="center"
+                  width="200"
+                  class-name="small-padding fixed-width"
+                >
                   <template slot-scope="scope">
-                    <el-button size="medium" type="text" @click="handleDetailsGo(scope.row)">
+                    <el-button
+                      size="medium"
+                      type="text"
+                      @click="handleDetailsGo(scope.row)"
+                    >
                       <span class="button-zx">
                         <i class="el-icon-s-order"></i>鏌ョ湅
                       </span>
@@ -117,175 +219,181 @@
 
 <script>
 export default {
-  name: 'DetailDialog',
-  dicts: ['sys_yujing', 'sys_suggest'],
+  name: "DetailDialog",
+  dicts: ["sys_yujing", "sys_suggest"],
   props: {
     visible: {
       type: Boolean,
-      default: false
+      default: false,
     },
     title: {
       type: String,
-      default: ''
+      default: "",
     },
     data: {
       type: Array,
-      default: () => []
+      default: () => [],
     },
     searchName: {
       type: String,
-      default: ''
+      default: "",
     },
     loading: {
       type: Boolean,
-      default: false
-    }
+      default: false,
+    },
   },
   data() {
     return {
-      localSearchName: '',
+      localSearchName: "",
       displayList: [],
       currentDisplayList: [],
       loadIndex: 0,
       pageSize: 100,
-      isLoading: false
-    }
+      isLoading: false,
+    };
   },
   watch: {
     data: {
       immediate: true,
       handler(newData) {
-        this.initializeData(newData)
-      }
+        this.initializeData(newData);
+      },
     },
     searchName(newVal) {
-      this.localSearchName = newVal
-      this.handleSearch()
-    }
+      this.localSearchName = newVal;
+      this.handleSearch();
+    },
   },
   mounted() {
     if (this.data && this.data.length > 0) {
-      this.initializeData(this.data)
+      this.initializeData(this.data);
     }
   },
   methods: {
     initializeData(data) {
-      this.displayList = [...data]
-      this.formatPreachformData()
-      this.loadIndex = 0
-      this.currentDisplayList = []
+      this.displayList = [...data];
+      this.formatPreachformData();
+      this.loadIndex = 0;
+      this.currentDisplayList = [];
       this.$nextTick(() => {
-        this.loadMoreData()
-      })
+        this.loadMoreData();
+      });
     },
 
     formatPreachformData() {
       this.displayList.forEach((item) => {
         if (item.preachform) {
           if (item.endtime) {
-            item.preachformson = item.preachform
-            const idArray = item.preachform.split(',')
+            item.preachformson = item.preachform;
+            const idArray = item.preachform.split(",");
 
-            item.preachform = idArray.map((value) => {
-              const checkboxlist = this.$store.getters.checkboxlist
-              const foundItem = checkboxlist.find((item) => item.value == value)
-              return foundItem ? foundItem.label : null
-            }).filter(label => label !== null)
+            item.preachform = idArray
+              .map((value) => {
+                const checkboxlist = this.$store.getters.checkboxlist;
+                const foundItem = checkboxlist.find(
+                  (item) => item.value == value
+                );
+                return foundItem ? foundItem.label : null;
+              })
+              .filter((label) => label !== null);
           }
         }
-      })
+      });
     },
 
     handleSearch() {
       if (!this.localSearchName.trim()) {
-        this.displayList = [...this.data]
-        this.formatPreachformData()
+        this.displayList = [...this.data];
+        this.formatPreachformData();
       } else {
-        const keyword = this.localSearchName.toLowerCase()
+        const keyword = this.localSearchName.toLowerCase();
         this.displayList = this.data.filter((item) => {
-          return item.sendname && item.sendname.toLowerCase().includes(keyword)
-        })
-        this.formatPreachformData()
+          return item.sendname && item.sendname.toLowerCase().includes(keyword);
+        });
+        this.formatPreachformData();
       }
 
-      this.loadIndex = 0
-      this.currentDisplayList = []
+      this.loadIndex = 0;
+      this.currentDisplayList = [];
       this.$nextTick(() => {
-        this.loadMoreData()
-      })
+        this.loadMoreData();
+      });
 
-      this.$emit('search', this.localSearchName)
+      this.$emit("search", this.localSearchName);
     },
 
     loadMoreData() {
-      if (this.isLoading || this.loadIndex >= this.displayList.length) return
+      if (this.isLoading || this.loadIndex >= this.displayList.length) return;
 
-      this.isLoading = true
+      this.isLoading = true;
 
       setTimeout(() => {
         const nextChunk = this.displayList.slice(
           this.loadIndex,
           this.loadIndex + this.pageSize
-        )
-        this.currentDisplayList = this.currentDisplayList.concat(nextChunk)
-        this.loadIndex += this.pageSize
-        this.isLoading = false
-      }, 200)
+        );
+        this.currentDisplayList = this.currentDisplayList.concat(nextChunk);
+        this.loadIndex += this.pageSize;
+        this.isLoading = false;
+      }, 200);
     },
 
     handleScroll(event) {
-      const scrollContainer = event.target
+      const scrollContainer = event.target;
       const isAtBottom =
         scrollContainer.scrollTop + scrollContainer.clientHeight >=
-        scrollContainer.scrollHeight - 10
+        scrollContainer.scrollHeight - 10;
 
       if (
         isAtBottom &&
         !this.isLoading &&
         this.loadIndex < this.displayList.length
       ) {
-        this.loadMoreData()
+        this.loadMoreData();
       }
     },
 
     getStateTagType(state) {
       const stateMap = {
-        1: 'primary',  // 琛ㄥ崟宸查鍙�
-        2: 'primary',  // 寰呴殢璁�
-        3: 'success',  // 琛ㄥ崟宸插彂閫�
-        4: 'info',     // 涓嶆墽琛�
-        5: 'danger',   // 鍙戦�佸け璐�
-        6: 'success'   // 宸插畬鎴�
-      }
-      return stateMap[state] || 'info'
+        1: "primary", // 琛ㄥ崟宸查鍙�
+        2: "primary", // 寰呴殢璁�
+        3: "success", // 琛ㄥ崟宸插彂閫�
+        4: "info", // 涓嶆墽琛�
+        5: "danger", // 鍙戦�佸け璐�
+        6: "success", // 宸插畬鎴�
+        7: "danger", // 瓒呮椂
+      };
+      return stateMap[state] || "info";
     },
 
     getStateText(state) {
       const stateTextMap = {
-        1: '琛ㄥ崟宸查鍙�',
-        2: '寰呴殢璁�',
-        3: '琛ㄥ崟宸插彂閫�',
-        4: '涓嶆墽琛�',
-        5: '鍙戦�佸け璐�',
-        6: '宸插畬鎴�'
-      }
-      return stateTextMap[state] || '鏈煡鐘舵��'
+        1: "琛ㄥ崟宸查鍙�",
+        2: "寰呴殢璁�",
+        3: "琛ㄥ崟宸插彂閫�",
+        4: "涓嶆墽琛�",
+        5: "鍙戦�佸け璐�",
+        6: "宸插畬鎴�",
+        7: "瓒呮椂",
+      };
+      return stateTextMap[state] || "鏈煡鐘舵��";
     },
 
     formatTime(time) {
-      if (!time) return ''
-      return this.parseTime(time)
+      if (!time) return "";
+      return this.parseTime(time);
     },
 
     handleDetailsGo(row) {
-      this.$emit('details-go', row)
+      this.$emit("details-go", row);
     },
 
     handleClose() {
-      this.$emit('close')
-    }
-  }
-}
+      this.$emit("close");
+    },
+  },
+};
 </script>
 
 <style lang="scss" scoped>

--
Gitblit v1.9.3