From 077ab59c700b85efdd057265bf752ad5942395b2 Mon Sep 17 00:00:00 2001
From: ZN <zhang_12370@163.com>
Date: 星期二, 17 三月 2026 17:36:13 +0800
Subject: [PATCH] feat(quality): 新增质量管理模块的API接口和移动端页面

---
 src/pages/safeProduction/dangerInvestigation/index.vue |   90 ++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 81 insertions(+), 9 deletions(-)

diff --git a/src/pages/safeProduction/dangerInvestigation/index.vue b/src/pages/safeProduction/dangerInvestigation/index.vue
index d4e32ba..928b070 100644
--- a/src/pages/safeProduction/dangerInvestigation/index.vue
+++ b/src/pages/safeProduction/dangerInvestigation/index.vue
@@ -26,7 +26,8 @@
           v-if="visitList.length > 0">
       <view v-for="(item, index) in visitList"
             :key="index">
-        <view class="ledger-item">
+        <view class="ledger-item"
+              :class="{ 'overdue': isOverdue(item.rectifyTime, item.rectifyActualTime) }">
           <view class="item-header">
             <view class="item-left">
               <view class="document-icon">
@@ -117,29 +118,39 @@
                       @click="viewDetail(item)">
               鏌ョ湅璇︽儏
             </u-button> -->
-            <u-button type="primary"
-                      size="small"
-                      class="action-btn"
-                      @click="editVisit(item)">
-              缂栬緫
-            </u-button>
             <u-button type="warning"
                       size="small"
                       class="action-btn"
-                      :disabled="item.isRectify"
+                      :disabled="item.isRectify || item.rectifyActualTime"
                       @click="rectifyVisit(item)">
               鏁存敼
             </u-button>
             <u-button type="success"
                       size="small"
                       class="action-btn"
-                      :disabled="!item.rectifyActualTime"
+                      :disabled="!item.rectifyActualTime || item.verifyTime"
                       @click="acceptanceVisit(item)">
               楠屾敹
+            </u-button>
+          </view>
+          <view class="action-buttons">
+            <u-button type="primary"
+                      size="small"
+                      class="action-btn"
+                      :disabled="item.rectifyActualTime || item.verifyTime"
+                      @click="editVisit(item)">
+              缂栬緫
+            </u-button>
+            <u-button type="info"
+                      size="small"
+                      class="action-btn"
+                      @click="viewFileList(item)">
+              闄勪欢
             </u-button>
             <u-button type="error"
                       size="small"
                       class="action-btn"
+                      :disabled="item.rectifyActualTime || item.verifyTime"
                       @click="deleteVisit(item)">
               鍒犻櫎
             </u-button>
@@ -194,6 +205,21 @@
 
   const userStore = useUserStore();
 
+  // 妫�鏌ラ殣鎮f槸鍚﹁秴鏈熸湭鏁存敼
+  const isOverdue = (rectifyTime, rectifyActualTime) => {
+    // 濡傛灉宸茬粡鏁存敼瀹屾垚锛屽垯涓嶈秴鏈�
+    if (rectifyActualTime) return false;
+
+    // 濡傛灉娌℃湁鏁存敼鏈熼檺锛屽垯涓嶈秴鏈�
+    if (!rectifyTime) return false;
+
+    const today = dayjs();
+    const deadline = dayjs(rectifyTime);
+
+    // 濡傛灉褰撳墠鏃ユ湡瓒呰繃鏁存敼鏈熼檺锛屽垯瓒呮湡
+    return today.isAfter(deadline, "day");
+  };
+
   // 鎼滅储鍏抽敭璇�
   const customerName = ref("");
 
@@ -202,6 +228,12 @@
   // 杩斿洖涓婁竴椤�
   const goBack = () => {
     uni.navigateBack();
+  };
+  const viewFileList = item => {
+    uni.setStorageSync("dangerInvestigationFileId", item.id);
+    uni.navigateTo({
+      url: "/pages/safeProduction/dangerInvestigation/fileList",
+    });
   };
 
   // 鏌ヨ鍒楄〃
@@ -349,5 +381,45 @@
     background: #667eea; // 淇濇寔椤甸潰鐗规湁鐨勮儗鏅壊
     box-shadow: 0 4px 16px rgba(102, 126, 234, 0.3); // 淇濇寔椤甸潰鐗规湁鐨勯槾褰辨晥鏋�
   }
+  .action-buttons {
+    gap: 4px;
+  }
+  .action-buttons {
+    padding: 0 0 10rpx 0;
+  }
+
+  // 瓒呮湡鏈暣鏀圭殑闅愭偅鏍峰紡
+  .overdue {
+    border-left: 8rpx solid #ff4d4f;
+    background-color: rgba(255, 77, 79, 0.02);
+  }
+
+  .overdue .item-header {
+    position: relative;
+    padding-left: 20rpx;
+  }
+
+  .overdue .item-header::after {
+    content: "瓒呮湡";
+    position: absolute;
+    top: 32rpx;
+    right: 20rpx;
+    font-size: 24rpx;
+    font-weight: 500;
+    color: #ff4d4f;
+    background-color: rgba(255, 77, 79, 0.1);
+    padding: 4rpx 16rpx;
+    border-radius: 16rpx;
+    border: 1rpx solid rgba(255, 77, 79, 0.3);
+  }
+
+  .overdue .detail-row:nth-child(7) .detail-value {
+    color: #ff4d4f;
+    font-weight: 500;
+  }
+
+  .overdue .detail-row {
+    padding-left: 20rpx;
+  }
 </style>
 

--
Gitblit v1.9.3