From fbb61549bf96e9e0910b676a5524b0760d29c4be Mon Sep 17 00:00:00 2001
From: WXL (wul) <wl_5969728@163.com>
Date: 星期二, 07 四月 2026 15:16:54 +0800
Subject: [PATCH] 测试完成

---
 src/views/Satisfaction/sfstatistics/components/components/SeedetailsDialog.vue |  401 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 401 insertions(+), 0 deletions(-)

diff --git a/src/views/Satisfaction/sfstatistics/components/components/SeedetailsDialog.vue b/src/views/Satisfaction/sfstatistics/components/components/SeedetailsDialog.vue
new file mode 100644
index 0000000..ce29cd3
--- /dev/null
+++ b/src/views/Satisfaction/sfstatistics/components/components/SeedetailsDialog.vue
@@ -0,0 +1,401 @@
+<template>
+  <div class="seedetails-dialog">
+    <div class="examine-jic">
+      <div class="jic-value">
+        <!-- 鏌ヨ琛ㄥ崟 -->
+        <el-form
+          :model="patientqueryParams"
+          ref="patientQueryForm"
+          size="small"
+          :inline="true"
+          class="detail-query-form"
+        >
+          <el-form-item label="鎮h�咃細" prop="name">
+            <el-input
+              v-model="patientqueryParams.name"
+              placeholder="璇疯緭鍏ユ偅鑰呭鍚�"
+              clearable
+              @keyup.enter.native="handleSearch"
+              style="width: 180px"
+            />
+          </el-form-item>
+
+          <el-form-item label="鎮h�呰瘖鏂細" prop="leavediagname">
+            <el-input
+              v-model="patientqueryParams.leavediagname"
+              placeholder="璇疯緭鍏ユ偅鑰呰瘖鏂�"
+              clearable
+              @keyup.enter.native="handleSearch"
+              style="width: 200px"
+            />
+          </el-form-item>
+
+          <el-form-item>
+            <el-button
+              type="primary"
+              icon="el-icon-search"
+              @click="handleSearch"
+              :loading="loading"
+            >
+              鎼滅储
+            </el-button>
+            <el-button icon="el-icon-refresh" @click="handleReset">
+              閲嶇疆
+            </el-button>
+          </el-form-item>
+        </el-form>
+
+        <!-- 鎮h�呭垪琛ㄨ〃鏍� -->
+        <el-table
+          v-loading="loading"
+          :data="logsheetlist"
+          style="width: 100%"
+          :border="true"
+          class="patient-table"
+        >
+          <el-table-column
+            prop="sendname"
+            label="濮撳悕"
+            align="center"
+            width="100"
+          />
+
+          <el-table-column
+            prop="taskName"
+            label="浠诲姟鍚嶇О"
+            align="center"
+            width="200"
+            show-overflow-tooltip
+          />
+
+          <el-table-column
+            prop="sendstate"
+            label="浠诲姟鐘舵��"
+            align="center"
+            width="120"
+          >
+            <template slot-scope="{ row }">
+              <div v-if="row.sendstate == 1">
+                <el-tag type="primary" size="small">琛ㄥ崟宸查鍙�</el-tag>
+              </div>
+              <div v-if="row.sendstate == 2">
+                <el-tag type="primary" size="small">寰呴殢璁�</el-tag>
+              </div>
+              <div v-if="row.sendstate == 3">
+                <el-tag type="success" size="small">琛ㄥ崟宸插彂閫�</el-tag>
+              </div>
+              <div v-if="row.sendstate == 4">
+                <el-tag type="info" size="small">涓嶆墽琛�</el-tag>
+              </div>
+              <div v-if="row.sendstate == 5">
+                <el-tag type="danger" size="small">鍙戦�佸け璐�</el-tag>
+              </div>
+              <div v-if="row.sendstate == 6">
+                <el-tag type="success" size="small">宸插畬鎴�</el-tag>
+              </div>
+            </template>
+          </el-table-column>
+
+          <el-table-column
+            prop="visitTime"
+            label="搴旈殢璁挎椂闂�"
+            align="center"
+            width="180"
+            show-overflow-tooltip
+          />
+
+          <el-table-column
+            prop="finishtime"
+            label="闅忚瀹屾垚鏃堕棿"
+            align="center"
+            width="180"
+            show-overflow-tooltip
+          >
+            <template slot-scope="{ row }">
+              <span v-if="row.finishtime">{{ row.finishtime }}</span>
+              <span v-else style="color: #f56c6c">鏈畬鎴�</span>
+            </template>
+          </el-table-column>
+
+          <el-table-column
+            label="鍑洪櫌鏃ユ湡"
+            width="120"
+            align="center"
+            key="endtime"
+            prop="endtime"
+          >
+            <template slot-scope="{ row }">
+              <span v-if="row.endtime">{{ formatTime(row.endtime) }}</span>
+              <span v-else>-</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="缁撴灉鐘舵��"
+            align="center"
+            key="excep"
+            prop="excep"
+            width="120"
+          >
+            <template slot-scope="{ row }">
+              <dict-tag
+                :options="dict.type.sys_yujing"
+                :value="row.excep"
+                size="small"
+              />
+            </template>
+          </el-table-column>
+
+          <el-table-column
+            label="澶勭悊鎰忚"
+            align="center"
+            key="suggest"
+            prop="suggest"
+            width="120"
+          >
+            <template slot-scope="{ row }">
+              <dict-tag
+                :options="dict.type.sys_suggest"
+                :value="row.suggest"
+                size="small"
+              />
+            </template>
+          </el-table-column>
+
+          <el-table-column
+            prop="templatename"
+            label="鏈嶅姟妯℃澘"
+            width="150"
+            align="center"
+            show-overflow-tooltip
+          />
+
+          <el-table-column
+            prop="remark"
+            label="鏈嶅姟璁板綍"
+            width="150"
+            align="center"
+            show-overflow-tooltip
+          />
+
+          <el-table-column
+            prop="bankcardno"
+            label="鍛煎彨鐘舵��"
+            width="120"
+            align="center"
+          />
+
+          <el-table-column
+            label="鎿嶄綔"
+            fixed="right"
+            align="center"
+            width="100"
+          >
+            <template slot-scope="{ row }">
+              <el-button
+                type="text"
+                size="small"
+                @click="handleViewDetail(row)"
+              >
+                <i class="el-icon-view"></i> 鏌ョ湅
+              </el-button>
+            </template>
+          </el-table-column>
+        </el-table>
+
+        <!-- 鍒嗛〉 -->
+        <div class="pagination" v-if="patienttotal > 0">
+          <el-pagination
+            background
+            layout="total, sizes, prev, pager, next, jumper"
+            :current-page="patientqueryParams.pn"
+            :page-size="patientqueryParams.ps"
+            :page-sizes="[10, 20, 30]"
+            :total="patienttotal"
+            @size-change="handleSizeChange"
+            @current-change="handlePageChange"
+          />
+        </div>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+import { selectTimelyRate } from "@/api/system/user";
+
+export default {
+  name: 'SeedetailsDialog',
+  dicts: ['sys_yujing', 'sys_suggest'],
+  props: {
+    rowData: {
+      type: Object,
+      default: () => ({})
+    },
+    queryParams: {
+      type: Object,
+      default: () => ({})
+    }
+  },
+  data() {
+    return {
+      // 鏌ヨ鍙傛暟
+      patientqueryParams: {
+        pn: 1,
+        ps: 10,
+        name: '',
+        leavediagname: ''
+      },
+
+      // 鍔犺浇鐘舵��
+      loading: false,
+
+      // 鎮h�呭垪琛�
+      logsheetlist: [],
+
+      // 鎬绘潯鏁�
+      patienttotal: 0
+    };
+  },
+
+  mounted() {
+    this.loadData();
+  },
+
+  methods: {
+    // 鍔犺浇鏁版嵁
+    async loadData() {
+      this.loading = true;
+      try {
+        const params = {
+          ...this.patientqueryParams,
+          deptcode: this.rowData.deptcode || '',
+          starttime: this.queryParams.dateRange?.[0] ? this.parseTime(this.queryParams.dateRange[0]) : '',
+          endtime: this.queryParams.dateRange?.[1] ? this.parseTime(this.queryParams.dateRange[1]) : ''
+        };
+
+        const response = await selectTimelyRate(params);
+        this.logsheetlist = response.data?.detail || [];
+        this.patienttotal = response.data?.total || 0;
+      } catch (error) {
+        console.error('鑾峰彇鏈強鏃堕殢璁胯鎯呭け璐�:', error);
+        this.$message.error('鑾峰彇鏁版嵁澶辫触');
+      } finally {
+        this.loading = false;
+      }
+    },
+
+    // 澶勭悊鎼滅储
+    handleSearch() {
+      this.patientqueryParams.pn = 1;
+      this.loadData();
+    },
+
+    // 澶勭悊閲嶇疆
+    handleReset() {
+      this.patientqueryParams = {
+        pn: 1,
+        ps: 10,
+        name: '',
+        leavediagname: ''
+      };
+      this.loadData();
+    },
+
+    // 澶勭悊鍒嗛〉澶у皬鍙樺寲
+    handleSizeChange(size) {
+      this.patientqueryParams.ps = size;
+      this.patientqueryParams.pn = 1;
+      this.loadData();
+    },
+
+    // 澶勭悊椤电爜鍙樺寲
+    handlePageChange(page) {
+      this.patientqueryParams.pn = page;
+      this.loadData();
+    },
+
+    // 鏍煎紡鍖栨椂闂�
+    formatTime(time) {
+      if (!time) return '-';
+      return time;
+    },
+
+    // 瑙f瀽鏃堕棿
+    parseTime(time) {
+      if (!time) return '';
+      return time;
+    },
+
+    // 鏌ョ湅璇︽儏
+    handleViewDetail(row) {
+      this.$emit('close');
+
+      let type = "";
+      if (row.preachformson && row.preachformson.includes("3")) {
+        type = 1;
+      }
+
+      setTimeout(() => {
+        this.$router.push({
+          path: "/followvisit/record/detailpage/",
+          query: {
+            taskid: row.taskid,
+            patid: row.patid,
+            id: row.id,
+            Voicetype: type
+          }
+        });
+      }, 300);
+    }
+  }
+};
+</script>
+
+<style lang="scss" scoped>
+.seedetails-dialog {
+  .detail-query-form {
+    margin-bottom: 20px;
+    padding-bottom: 20px;
+    border-bottom: 1px solid #f0f0f0;
+
+    ::v-deep .el-form-item {
+      margin-bottom: 0;
+      margin-right: 20px;
+    }
+  }
+
+  .patient-table {
+    margin-bottom: 20px;
+
+    ::v-deep .el-table__header-wrapper th {
+      background-color: #f8f9fa;
+      font-weight: 600;
+      color: #333;
+    }
+  }
+
+  .pagination {
+    display: flex;
+    justify-content: flex-end;
+    padding-top: 20px;
+    border-top: 1px solid #f0f0f0;
+  }
+}
+</style>

--
Gitblit v1.9.3