From 8dfc9189443d7baf2e73d99a73e1b20eefba366e Mon Sep 17 00:00:00 2001
From: WXL (wul) <wl_5969728@163.com>
Date: 星期二, 06 一月 2026 17:38:49 +0800
Subject: [PATCH] 测试完成

---
 src/views/sfstatistics/percentage/satisfaction.vue |  266 +++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 205 insertions(+), 61 deletions(-)

diff --git a/src/views/sfstatistics/percentage/satisfaction.vue b/src/views/sfstatistics/percentage/satisfaction.vue
index b9ced80..89a83e0 100644
--- a/src/views/sfstatistics/percentage/satisfaction.vue
+++ b/src/views/sfstatistics/percentage/satisfaction.vue
@@ -61,7 +61,7 @@
                 </el-select>
               </el-form-item>
 
-              <el-form-item label="缁熻棰樼洰" prop="userName">
+              <el-form-item label="鏈嶅姟绫诲瀷" prop="userName">
                 <el-select
                   v-model="queryParams.serviceType"
                   multiple
@@ -131,8 +131,6 @@
               :data="userList"
               :border="true"
               @selection-change="handleSelectionChange"
-              @row-click="handleRowClick"
-              @expand-change="handleRowClick"
               :row-key="getRowKey"
               :expand-row-keys="expands"
             >
@@ -207,59 +205,56 @@
               <el-table-column
                 label="婊℃剰搴﹂鐩�婚噺"
                 align="center"
-                key="manual"
-                prop="manual"
+                key="joyAllCount"
+                prop="joyAllCount"
               >
               </el-table-column>
               <el-table-column
                 label="婊℃剰搴﹀~鎶ラ噺"
                 align="center"
-                key="sms"
-                prop="sms"
+                key="joyCount"
+                prop="joyCount"
               >
               </el-table-column>
               <el-table-column
                 label="瀹屾垚姣旂巼"
                 align="center"
-                  key="rate"
-                prop="rate"
+                key="joyTotal"
+                prop="joyTotal"
+              >
+                <template slot-scope="scope">
+                  <span class="button-zx"
+                    >{{ (Number(scope.row.joyTotal) * 100).toFixed(2) }}%</span
+                  >
+                </template>
+              </el-table-column>
+              <el-table-column
+                label="鎿嶄綔"
+                align="center"
+                fixed="right"
+                width="300"
+                class-name="small-padding fixed-width"
               >
                 <template slot-scope="scope">
                   <el-button
                     size="medium"
                     type="text"
-                    @click="Seedetails(scope.row)"
+                    @click="getinfo(scope.row)"
                     ><span class="button-zx"
-                      >{{ (Number(scope.row.rate) * 100).toFixed(2) }}%</span
+                      ><i class="el-icon-s-order"></i>鏌ョ湅璇︽儏</span
                     ></el-button
                   >
                 </template>
               </el-table-column>
-              <el-table-column
-          label="鎿嶄綔"
-          align="center"
-          fixed="right"
-          width="300"
-          class-name="small-padding fixed-width"
-        >
-          <template slot-scope="scope">
-             <el-button size="medium" type="text" @click="Seedetails(scope.row)"
-              ><span class="button-zx"
-                ><i class="el-icon-s-order"></i>鏌ョ湅璇︽儏</span
-              ></el-button
-            >
-
-          </template>
-        </el-table-column>
             </el-table>
 
-            <!-- <pagination
+            <pagination
               v-show="total > 0"
               :total="total"
               :page.sync="queryParams.pageNum"
               :limit.sync="queryParams.pageSize"
               @pagination="getList"
-            /> -->
+            />
           </el-col>
         </el-row>
       </div>
@@ -512,6 +507,45 @@
         </div>
       </div>
     </el-dialog>
+    <!-- 鍗曠瀹ょ粺璁¤鎯� -->
+    <el-dialog :visible.sync="topicVisible" width="45%">
+      <div class="topicdia">
+        <div class="top-text">
+          {{ topicvalue.name }}<span>婊℃剰搴︽寚鏍囪鎯�</span>
+        </div>
+        <div style="overflow-x: hidden; overflow-y: auto; max-height: 65vh">
+          <div
+            class="ttaabbcc"
+            v-for="(item, index) in topiclist"
+            :key="item.name"
+          >
+            <div class="describe">
+              绗瑊{ index }}棰橈細 {{ item.scriptContent }}?<span
+                >[{{ item.scriptType == 1 ? "鍗曢�夐" : "澶氶�夐" }}]</span
+              >
+            </div>
+            <div>
+              <el-table :data="item.details" style="width: 100%">
+                <el-table-column prop="optionText" label="闂閫夐」">
+                </el-table-column>
+                <el-table-column prop="completedQuantity" label="閫夋嫨浜烘暟">
+                </el-table-column>
+                <el-table-column prop="chosenPercentage" label="姣斾緥">
+                   <template slot-scope="scope">
+                  <span class="button-zx"
+                    >{{ (Number(scope.row.chosenPercentage) * 100).toFixed(2) }}%</span
+                  >
+                </template>
+                </el-table-column>
+              </el-table>
+            </div>
+          </div>
+        </div>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="topicVisible = false">鍏� 闂�</el-button>
+      </span>
+    </el-dialog>
   </div>
 </template>
 
@@ -523,7 +557,11 @@
   changetagcategory,
 } from "@/api/system/label";
 import store from "@/store";
-import { getSfStatistics, selectTimelyRate } from "@/api/system/user";
+import {
+  getSfStatisticsJoy,
+  getSfStatisticsJoyInfo,
+  selectTimelyRate,
+} from "@/api/system/user";
 
 import Treeselect from "@riophae/vue-treeselect";
 import "@riophae/vue-treeselect/dist/vue-treeselect.css";
@@ -595,6 +633,40 @@
         pn: 1,
         ps: 10,
       },
+      topiclist: [
+        {
+          name: "鎮ㄧ殑韬綋搴峰鎯呭喌濡備綍",
+          number: 1,
+          type: 1,
+        },
+        {
+          name: "鎮ㄧ殑楗鎯呭喌濡備綍",
+          number: 2,
+          type: 2,
+        },
+        {
+          name: "鎮ㄧ殑鎭㈠鎯呭喌濡備綍",
+          number: 3,
+          type: 1,
+        },
+      ],
+      tableData: [
+        {
+          date: "濂�",
+          name: 12,
+          address: "50%",
+        },
+        {
+          date: "涓�鑸�",
+          name: 2,
+          address: "6.2%",
+        },
+        {
+          date: "宸�",
+          name: 0,
+          address: "0%",
+        },
+      ],
       amendtag: false, //鏄惁淇敼绫诲埆
       lstamendtag: false, //鏄惁淇敼鏍囩
       scavisible: false, //鍒犻櫎寮规
@@ -635,6 +707,11 @@
       dialogFormVisible: false, //娣诲姞銆佷慨鏀圭被鍒脊妗�
       lstamendtagVisible: false, //娣诲姞銆佷慨鏀规爣绛惧脊妗�
       goQRCodeVisible: false, //浜岀淮鐮佸脊妗�
+      topicVisible: false, //鎺у埗鍗曢寮规
+      topicvalue: {
+        name: "楠ㄧ闅忚妯℃澘",
+        number: 222,
+      },
       sidecolumnval: "", //绫诲埆鎼滅储
       propss: { multiple: true },
       SeedetailsVisible: false,
@@ -684,6 +761,7 @@
     getList() {
       // 澶勭悊鏌ヨ鍙傛暟
       const params = {
+        configKey: "joyCount",
         ...this.queryParams,
         // 濡傛灉閫夋嫨浜�"鍏ㄩ儴"锛屽垯浼犳墍鏈夌梾鍖�/绉戝浠g爜
         leavehospitaldistrictcodes:
@@ -698,9 +776,9 @@
       // 绉婚櫎鍙兘瀛樺湪鐨�"all"鍊�
       delete params.leavehospitaldistrictcodes.all;
       delete params.deptcodes.all;
-      getSfStatistics(params).then((response) => {
+      getSfStatisticsJoy(params).then((response) => {
         console.log(response);
-        // this.total = response.total;
+        this.total = response.total;
         this.userList = response.data;
       });
     },
@@ -708,35 +786,6 @@
       return row.statisticaltype === 1
         ? row.leavehospitaldistrictcode
         : row.deptcode;
-    },
-
-    // 澶勭悊琛岀偣鍑诲睍寮�
-    handleRowClick(row) {
-      console.log(row, "row");
-
-      // 濡傛灉宸茬粡灞曞紑鍒欐敹璧�
-      if (this.expands.includes(this.getRowKey(row))) {
-        this.expands = [];
-        return;
-      }
-      // 澶勭悊鏌ヨ鍙傛暟
-      const params = {
-        ...this.queryParams,
-        // 濡傛灉閫夋嫨浜�"鍏ㄩ儴"锛屽垯浼犳墍鏈夌梾鍖�/绉戝浠g爜
-        leavehospitaldistrictcodes: [row.leavehospitaldistrictcode],
-        drcode: "1",
-      };
-      // 濡傛灉璇ヨ杩樻病鏈夊姞杞藉尰鐢熸暟鎹紝鍒欏姞杞�
-      if (!row.doctorStats) {
-        this.loading = true;
-        getSfStatistics(params).then((res) => {
-          this.$set(row, "doctorStats", res.data);
-          this.expands = [this.getRowKey(row)];
-          this.loading = false;
-        });
-      } else {
-        this.expands = [this.getRowKey(row)];
-      }
     },
     /** 淇敼鏍囩 */
     handleUpdate(row) {
@@ -844,6 +893,32 @@
           },
         });
       }, 300);
+    },
+    // 璋冭捣璇︽儏
+    getinfo(row) {
+      this.topicVisible = true;
+      // 澶勭悊鏌ヨ鍙傛暟
+      const params = {
+        configKey: "joyCount",
+        ...this.queryParams,
+      };
+      if (this.queryParams.statisticaltype == 1) {
+        this.topicvalue.name = row.leavehospitaldistrictname;
+
+        params.leavehospitaldistrictcodes = [row.leavehospitaldistrictcode];
+      } else {
+        this.topicvalue.name = row.deptname;
+
+        params.deptcodes = [row.deptcode];
+      }
+
+      // 绉婚櫎鍙兘瀛樺湪鐨�"all"鍊�
+      delete params.leavehospitaldistrictcodes.all;
+      delete params.deptcodes.all;
+      getSfStatisticsJoyInfo(params).then((response) => {
+        console.log(response);
+        this.topiclist = response.data;
+      });
     },
     // 娣诲姞/淇敼鏍囩
     Maintenancetag() {
@@ -1385,6 +1460,75 @@
     height: 400px;
   }
 }
+.topicdia {
+  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
+  color: #333; /* 涓绘枃瀛楄壊 */
+}
+
+/* 澶撮儴鏍囬鏍峰紡 */
+.top-text {
+  font-size: 18px;
+  font-weight: 600;
+  padding-bottom: 16px;
+  margin-bottom: 20px;
+  border-bottom: 1px solid #e8e8e8; /* 绾ょ粏鐨勫垎闅旂嚎 */
+  color: #1f2d3d; /* 娣辫壊鏍囬 */
+}
+.top-text span {
+  font-size: 14px;
+  font-weight: normal;
+  color: #666; /* 鍓爣棰橀鑹茬◢娴� */
+  margin-left: 10px;
+}
+
+/* 棰樼洰瀹瑰櫒鏍峰紡 */
+.ttaabbcc {
+  background: #fafafa; /* 闈炲父娴呯殑鐏拌壊鑳屾櫙 */
+  border-radius: 6px;
+  padding: 16px;
+  margin-bottom: 20px;
+  border-left: 4px solid #4794c5; /* 宸︿晶瑁呴グ鑹叉潯锛屽鍔犲眰娆℃劅 */
+}
+
+/* 棰樼洰鎻忚堪鏍峰紡 */
+.describe {
+  font-size: 15px;
+  line-height: 1.6;
+  margin-bottom: 12px;
+  color: #1f2d3d;
+}
+.describe span {
+  font-size: 13px;
+  color: #999; /* 棰樺瀷鎻愮ず淇℃伅棰滆壊鏇存祬 */
+  font-style: italic;
+  margin-left: 8px;
+}
+
+/* 琛ㄦ牸鏁翠綋鏍峰紡璋冩暣 */
+.ttaabbcc .el-table {
+  border-radius: 4px;
+  overflow: hidden;
+  font-size: 14px;
+}
+
+/* 琛ㄥご鏍峰紡 */
+.ttaabbcc .el-table th {
+  background-color: #f1f5f9; /* 娴呰摑鑹茶〃澶磋儗鏅� */
+  color: #333;
+  font-weight: 600;
+}
+
+/* 鍗曞厓鏍兼牱寮� */
+.ttaabbcc .el-table td {
+  border-bottom: 1px solid #f0f0f0; /* 绾ょ粏鐨勮鍒嗛殧绾� */
+  padding: 12px 0;
+}
+
+/* 姣斾緥鏁版嵁鏍峰紡 */
+.button-zx {
+  color: #4794c5; /* 浣跨敤涓庝富棰樺懠搴旂殑钃濊壊 */
+  font-weight: 500;
+}
 ::v-deep.el-tabs--left,
 .el-tabs--right {
   overflow: hidden;

--
Gitblit v1.9.3