From 39c8b288ec8294e026459dfb1955f0bbc49ebb52 Mon Sep 17 00:00:00 2001
From: WXL (wul) <wl_5969728@163.com>
Date: 星期一, 19 十月 2026 11:10:40 +0800
Subject: [PATCH] 测试完成
---
src/components/Assistant/index.vue | 62 ++++++++++++++++++++++++++++---
1 files changed, 56 insertions(+), 6 deletions(-)
diff --git a/src/components/Assistant/index.vue b/src/components/Assistant/index.vue
index 18d0aa5..44da194 100644
--- a/src/components/Assistant/index.vue
+++ b/src/components/Assistant/index.vue
@@ -68,7 +68,10 @@
v-for="(item, index) in statsItems"
:key="index"
class="stat-item"
- :class="{ 'stat-item-highlight': item.highlight }"
+ :class="{
+ 'stat-item-highlight': item.highlight,
+ 'stat-item-top': item.id === 'myTasks',
+ }"
@click="handleItemClick(item)"
>
<div class="stat-icon">
@@ -102,6 +105,16 @@
<path
d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"
/>
+ </svg>
+ <svg
+ v-else-if="item.icon === 'IconClock'"
+ viewBox="0 0 24 24"
+ fill="none"
+ stroke="currentColor"
+ stroke-width="2"
+ >
+ <circle cx="12" cy="12" r="9" />
+ <path d="M12 7v5l3 3" />
</svg>
</div>
<div class="stat-info">
@@ -384,6 +397,7 @@
import {
getCurrentUserServiceSubtaskCount,
sendMsg,
+ getNearTimeoutCount,
} from "@/api/AiCentre/index";
import {
listSmstemplet,
@@ -481,6 +495,16 @@
// 缁熻鏁版嵁
statsItems: [
{
+ id: "myTasks",
+ label: "鎴戠殑浠诲姟",
+ value: "0",
+ unread: 0,
+ urltype: 5,
+ icon: "IconTask",
+ url: "/followvisit/discharge",
+ trend: { type: "stable", arrow: "", value: "" },
+ },
+ {
id: "pending",
label: "寰呴殢璁�",
value: "0",
@@ -512,12 +536,12 @@
trend: { type: "up", arrow: "", value: "" },
},
{
- id: "myTasks",
- label: "鎴戠殑浠诲姟",
+ id: "nearTimeout",
+ label: "涓磋繎瓒呮椂浠诲姟",
value: "0",
unread: 0,
urltype: 5,
- icon: "IconTask",
+ icon: "IconClock",
url: "/followvisit/discharge",
trend: { type: "stable", arrow: "", value: "" },
},
@@ -815,6 +839,13 @@
},
handleItemClick(item) {
+ // 涓磋繎瓒呮椂浠诲姟锛氭墦寮�鐧诲綍鍚庡脊绐楋紝鑰岄潪璺宠浆鍒楄〃椤�
+ if (item.id === "nearTimeout") {
+ this.$root.$emit("open-near-timeout");
+ this.toggleExpand();
+ return;
+ }
+
if (item.url) {
console.log(item.url, "item.url");
@@ -942,6 +973,11 @@
// 妯℃嫙鏁版嵁鏇存柊
const mockData = {
+ myTasks: {
+ value: "156",
+ unread: null,
+ trend: { type: "stable", arrow: "鈫�", value: "0" },
+ },
pending: {
value: "128",
unread: null,
@@ -957,8 +993,8 @@
unread: null,
trend: { type: "up", arrow: "鈫�", value: "3" },
},
- myTasks: {
- value: "156",
+ nearTimeout: {
+ value: "0",
unread: null,
trend: { type: "stable", arrow: "鈫�", value: "0" },
},
@@ -968,6 +1004,8 @@
mockData.failed.value = response.failedVisitCount;
mockData.abnormal.value = response.abnormalVisitCount;
mockData.myTasks.value = response.allVisitCount;
+ // 涓磋繎瓒呮椂浠诲姟鏁伴噺锛堟帴鍙f湭灏辩华锛屽厛鐢� mock锛�
+ mockData.nearTimeout.value = await getNearTimeoutCount();
this.statsItems = this.statsItems.map((item) => {
const data = mockData[item.id] || {};
return {
@@ -1227,6 +1265,18 @@
background: linear-gradient(to bottom right, #f0f9ff, #f8fafc);
}
+.stat-item-top {
+ grid-column: 1 / -1;
+ display: flex;
+ align-items: center;
+ flex-direction: row;
+ gap: 16px;
+}
+
+.stat-item-top .stat-icon {
+ margin-bottom: 0;
+}
+
.stat-icon {
width: 32px;
height: 32px;
--
Gitblit v1.9.3