From c84b22901837782f7de6ef305151d3127afa9bc8 Mon Sep 17 00:00:00 2001
From: 董国庆 <364620639@qq.com>
Date: 星期六, 24 一月 2026 16:46:32 +0800
Subject: [PATCH] 111

---
 screen/src/view/login/index.vue       |    4 +
 screen/.env.development               |    2 
 screen/src/view/projectHome/index.vue |    6 ++-
 screen/src/view/planOfAudit/index.vue |  103 ++++++++++++++++++++++++++++++++++++++-------------
 4 files changed, 84 insertions(+), 31 deletions(-)

diff --git a/screen/.env.development b/screen/.env.development
index deae50b..d758fa7 100644
--- a/screen/.env.development
+++ b/screen/.env.development
@@ -1,3 +1,3 @@
-VUE_APP_BASE_URL=http://192.168.110.188:9908
+VUE_APP_BASE_URL=http://192.168.110.111:9908
 # VUE_APP_BASE_URL=http://221.182.45.100:8180
 VUE_APP_IMAGE_BASE_URL=http://221.182.45.100:11225/images/files/
diff --git a/screen/src/view/login/index.vue b/screen/src/view/login/index.vue
index 7121d98..35a0f18 100644
--- a/screen/src/view/login/index.vue
+++ b/screen/src/view/login/index.vue
@@ -357,6 +357,8 @@
                           : []
                       )
                     );
+                    localStorage.setItem("deviceTemplateId", r.deviceTemplateId);//设备模板id
+                    localStorage.setItem("safetyId", r.safetyId);//安全报告模板id
                     if (this.userInfo.type == 2) {
                       this.$router.replace({
                         path: "/projectHome",
@@ -618,4 +620,4 @@
     box-shadow: 0 4px 12px rgba(9, 185, 255, 0.3);
   }
 }
-</style>
\ No newline at end of file
+</style>
diff --git a/screen/src/view/planOfAudit/index.vue b/screen/src/view/planOfAudit/index.vue
index 3c52be1..a872a98 100644
--- a/screen/src/view/planOfAudit/index.vue
+++ b/screen/src/view/planOfAudit/index.vue
@@ -148,26 +148,45 @@
               class="btnColor"
               >检查资料</el-button
             >
-            <el-popover trigger="click" popper-class="custom-popper">
+            <el-popover
+              trigger="click"
+              popper-class="custom-popper"
+              :disabled="!hasAnyReport(row)"
+            >
               <template #reference>
-                <el-button type="text" class="btnColor">查看报告</el-button>
+                <el-button
+                  type="text"
+                  class="btnColor"
+                  :disabled="!hasAnyReport(row)"
+                  @click="checkReportAvailability(row)"
+                >
+                  查看报告
+                </el-button>
               </template>
               <div
                 class="h100 flex flex-column a-center j-between c-fff fs--16 SHSBold"
               >
                 <div
                   @click="openReport('safe', row)"
-                  class="py--12 w100 txt-center br--10 bgcolor6 cursor-pointer"
-                  :class="{ disabled: row.containSystemRes !== 1 }"
+                  class="py--12 w100 txt-center br--10 bgcolor6 report-btn"
+                  :class="{
+                    'report-disabled': row.containSystemRes !== 1,
+                    'report-enabled': row.containSystemRes === 1
+                  }"
                 >
-                  安全报告
+                  <span>安全报告</span>
+                  <span v-if="row.containSystemRes !== 1" class="no-report-tag">(暂无)</span>
                 </div>
                 <div
                   @click="openReport('device', row)"
-                  class="py--12 w100 txt-center br--10 bgcolor7 cursor-pointer"
-                  :class="{ disabled: row.containDeviceRes !== 1 }"
+                  class="py--12 w100 txt-center br--10 bgcolor7 report-btn"
+                  :class="{
+                    'report-disabled': row.containDeviceRes !== 1,
+                    'report-enabled': row.containDeviceRes === 1
+                  }"
                 >
-                  设备报告
+                  <span>设备报告</span>
+                  <span v-if="row.containDeviceRes !== 1" class="no-report-tag">(暂无)</span>
                 </div>
               </div>
             </el-popover>
@@ -607,26 +626,36 @@
       }
     },
 
+    // 检查是否有任何报告
+    hasAnyReport(row) {
+      return row.containSystemRes === 1 || row.containDeviceRes === 1;
+    },
+
+    // 检查报告可用性(当按钮被禁用时点击)
+    checkReportAvailability(row) {
+      if (!this.hasAnyReport(row)) {
+        this.$message.warning("该计划暂无可查看的报告");
+      }
+    },
+
     // 打开报告
     openReport(type, row) {
-      this.currentRow = row;
-      if (type === "safe") {
-        // 安全报告
-        if (row.containSystemRes === 1) {
-          this.reportUrl = row.systemReportUrl || "";
-        } else {
-          this.$message.warning("暂无安全报告");
-          return;
-        }
-      } else if (type === "device") {
-        // 设备报告
-        if (row.containDeviceRes === 1) {
-          this.reportUrl = row.deviceReportUrl || "";
-        } else {
-          this.$message.warning("暂无设备报告");
-          return;
-        }
+      // 根据类型检查是否有对应报告
+      const hasReport = type === "safe"
+        ? row.containSystemRes === 1
+        : row.containDeviceRes === 1;
+
+      if (!hasReport) {
+        this.$message.warning(`暂无${type === "safe" ? "安全" : "设备"}报告`);
+        return;
       }
+
+      this.currentRow = row;
+
+      // 获取报告URL
+      this.reportUrl = type === "safe"
+        ? row.systemReportUrl || ""
+        : row.deviceReportUrl || "";
 
       if (this.reportUrl) {
         this.reportVisible = true;
@@ -844,9 +873,29 @@
   color: #00ebfc;
 }
 
-.disabled {
-  opacity: 0.5;
+.report-btn {
+  cursor: pointer;
+  transition: all 0.3s ease;
+  position: relative;
+}
+
+.report-enabled {
+  &:hover {
+    opacity: 0.8;
+    transform: translateY(-2px);
+  }
+}
+
+.report-disabled {
+  opacity: 0.4;
   cursor: not-allowed !important;
+  pointer-events: none;
+}
+
+.no-report-tag {
+  font-size: 12px;
+  margin-left: 4px;
+  opacity: 0.7;
 }
 
 ::v-deep .el-descriptions {
diff --git a/screen/src/view/projectHome/index.vue b/screen/src/view/projectHome/index.vue
index 4d26728..24ec1c1 100644
--- a/screen/src/view/projectHome/index.vue
+++ b/screen/src/view/projectHome/index.vue
@@ -441,9 +441,11 @@
         console.log('res', res)
         this.projectName = res.name
         const permissions = res.permissionProject ? res.permissionProject.split(",") : []
-        this.permissionProject =['1','2','3','4','5','6','7']|| permissions
-        localStorage.setItem( "permissionProject", JSON.stringify(permissions));
+        this.permissionProject = ['1', '2', '3', '4', '5', '6', '7'] || permissions
+        localStorage.setItem("permissionProject", JSON.stringify(permissions));
         localStorage.setItem('commentType', res.commentType)
+        localStorage.setItem("deviceTemplateId", res.deviceTemplateId);//设备模板id
+        localStorage.setItem("safetyId", res.safetyId);//安全报告模板id
       }).catch(err => {
         console.error('获取登录信息失败:', err)
         // 设置默认值,确保页面可以继续渲染

--
Gitblit v1.7.1