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