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