From d3c60e18b95b50751f8088fa2d23cd8ff7f173bc Mon Sep 17 00:00:00 2001
From: WXL (wul) <wl_5969728@163.com>
Date: 星期三, 01 七月 2026 11:05:17 +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