From 7eb190f13437b2e67788e9f4bdea725fdb165f01 Mon Sep 17 00:00:00 2001
From: zhuo <2089219845@qq.com>
Date: 星期二, 20 五月 2025 10:41:01 +0800
Subject: [PATCH] 代码合并

---
 src/views/CNAS/resourceDemand/device/index.vue |   82 +++++++++++++++++++++-------------------
 1 files changed, 43 insertions(+), 39 deletions(-)

diff --git a/src/views/CNAS/resourceDemand/device/index.vue b/src/views/CNAS/resourceDemand/device/index.vue
index 6a23ed4..e01dc60 100644
--- a/src/views/CNAS/resourceDemand/device/index.vue
+++ b/src/views/CNAS/resourceDemand/device/index.vue
@@ -12,7 +12,9 @@
         <div slot-scope="{ node, data }" class="custom-tree-node">
           <el-row style="width: 100%;">
             <el-col :span="24">
-              <p class="single-line-ellipsis" style="width: 100%">
+              <p class="single-line-ellipsis" style="width: 100%" :style="{
+              color: isLeafNode(data) && shouldHighlight(data) ? 'red' : ''
+            }">
                 <i :class="`node_i ${data.children != undefined
                   ? data.code === '[1]'
                     ? 'el-icon-folder-opened'
@@ -22,7 +24,9 @@
                   "></i>
                 {{ data.label }}
               </p>
-              <p>
+              <p :style="{
+              color: isLeafNode(data) && shouldHighlight(data) ? 'red' : ''
+            }">
                 {{ data.managementNumber === undefined ? '' : data.managementNumber }}
               </p>
             </el-col>
@@ -34,77 +38,56 @@
       <div v-if="isShowAll" style="height: 100%;">
         <el-tabs v-model="menuListActiveName" class="main_right" type="border-card">
           <el-tab-pane label="璁惧鎬昏" name="璁惧鎬昏">
-            <!-- 瀹屾垚鎺ュ彛 -->
             <overview v-if="menuListActiveName == '璁惧鎬昏'" :clickNodeVal="clickNodeVal" />
           </el-tab-pane>
           <el-tab-pane label="璁惧宸ュ叿鏄庣粏" name="璁惧宸ュ叿鏄庣粏">
-            <!-- 瀹屾垚鎺ュ彛 -->
             <management v-if="menuListActiveName == '璁惧宸ュ叿鏄庣粏'" :clickNodeVal="clickNodeVal" />
           </el-tab-pane>
-          <!--          <el-tab-pane label="璧勬簮棰勫畾" name="璧勬簮棰勫畾">-->
-          <!--            <resourceReservation v-if="menuListActiveName == '璧勬簮棰勫畾'" :clickNodeVal="clickNodeVal"/>-->
-          <!--          </el-tab-pane>-->
           <el-tab-pane label="璁惧鏍″噯璁″垝" name="璁惧鏍″噯璁″垝">
-            <!-- 瀹屾垚鎺ュ彛 -->
             <equipment-calibration-plan v-if="menuListActiveName == '璁惧鏍″噯璁″垝'"
               :clickNodeVal="clickNodeVal"></equipment-calibration-plan>
           </el-tab-pane>
           <el-tab-pane label="璁惧鏍告煡璁″垝" name="璁惧鏍告煡璁″垝">
-            <!-- 瀹屾垚鎺ュ彛 -->
             <equipment-verification-plan v-if="menuListActiveName == '璁惧鏍告煡璁″垝'"
               :clickNodeVal="clickNodeVal"></equipment-verification-plan>
           </el-tab-pane>
           <el-tab-pane label="璁惧淇濆吇璁″垝" name="璁惧淇濆吇璁″垝">
-            <!-- 瀹屾垚鎺ュ彛 -->
             <equipment-maintenance-plan v-if="menuListActiveName == '璁惧淇濆吇璁″垝'"
               :clickNodeVal="clickNodeVal"></equipment-maintenance-plan>
           </el-tab-pane>
           <el-tab-pane label="閲忓�兼函婧愯鍒�" name="閲忓�兼函婧愯鍒�">
-            <!-- 瀹屾垚鎺ュ彛 -->
             <quantity-value-traceability-plan v-if="menuListActiveName == '閲忓�兼函婧愯鍒�'"
               :clickNodeVal="clickNodeVal"></quantity-value-traceability-plan>
           </el-tab-pane>
+          <el-tab-pane label="璁惧浣跨敤鎺堟潈" name="璁惧浣跨敤鎺堟潈">
+            <usage-authorization v-if="menuListActiveName == '璁惧浣跨敤鎺堟潈'"
+              :clickNodeVal="clickNodeVal"></usage-authorization>
+          </el-tab-pane>
           <el-tab-pane label="鍒╃敤澶栭儴浠櫒璁惧" name="鍒╃敤澶栭儴浠櫒璁惧">
-            <!-- 瀹屾垚鎺ュ彛 -->
-            <using-external-instruments v-if="menuListActiveName == '鍒╃敤澶栭儴浠櫒璁惧'"
-              :clickNodeVal="clickNodeVal"></using-external-instruments>
+            <using-external-instruments v-if="menuListActiveName == '鍒╃敤澶栭儴浠櫒璁惧'" :clickNodeVal="clickNodeVal"></using-external-instruments>
           </el-tab-pane>
           <el-tab-pane label="浣跨敤璁板綍" name="浣跨敤璁板綍">
-            <!-- 瀹屾垚鎺ュ彛 -->
             <record v-if="menuListActiveName == '浣跨敤璁板綍'" :isMenuList="1" />
           </el-tab-pane>
         </el-tabs>
       </div>
       <div v-if="!isShowAll" style="height: 100%;">
         <el-tabs v-model="tabListActiveName" class="main_right" type="border-card" @tab-click="handleClick">
-          <!--          <el-tab-pane label="璁惧杩愯鎬昏" name="璁惧杩愯鎬昏">-->
-          <!--            <operationOverview v-if="tabListActiveName == '璁惧杩愯鎬昏'" :clickNodeVal="clickNodeVal"/>-->
-          <!--          </el-tab-pane>-->
           <el-tab-pane label="璁惧妗f" name="璁惧妗f">
-            <!-- 瀹屾垚鎺ュ彛 -->
             <files v-if="tabListActiveName == '璁惧妗f'" :clickNodeVal="clickNodeVal" />
           </el-tab-pane>
           <el-tab-pane label="璁惧楠屾敹" name="璁惧楠屾敹">
-            <!-- 瀹屾垚鎺ュ彛 -->
-            <equipment-acceptance v-if="tabListActiveName == '璁惧楠屾敹'"
-              :clickNodeVal="clickNodeVal"></equipment-acceptance>
+            <equipment-acceptance v-if="tabListActiveName == '璁惧楠屾敹'" :clickNodeVal="clickNodeVal"></equipment-acceptance>
           </el-tab-pane>
           <el-tab-pane label="璁惧鏍″噯" name="璁惧鏍″噯">
-            <!-- 瀹屾垚鎺ュ彛 -->
             <calibration v-if="tabListActiveName == '璁惧鏍″噯'" :clickNodeVal="clickNodeVal" />
           </el-tab-pane>
-          <!--          <el-tab-pane label="璁惧鏍告煡" name="璁惧鏍告煡">-->
-          <!--            <check v-if="tabListActiveName == '璁惧鏍告煡'" :clickNodeVal="clickNodeVal"/>-->
-          <!--          </el-tab-pane>-->
-          <el-tab-pane label="璁惧缁存姢" name="璁惧缁存姢">
-            <maintenance v-if="tabListActiveName == '璁惧缁存姢'" :clickNodeVal="clickNodeVal" />
+          <el-tab-pane label="璁惧缁存姢淇濆吇" name="璁惧缁存姢淇濆吇">
+            <equipmentMaintenance v-if="tabListActiveName == '璁惧缁存姢淇濆吇'" :clickNodeVal="clickNodeVal" />
           </el-tab-pane>
           <el-tab-pane label="璁惧鍊熺敤" name="璁惧鍊熺敤">
             <borrow v-if="tabListActiveName == '璁惧鍊熺敤'" :clickNodeVal="clickNodeVal" />
           </el-tab-pane>
-          <!--          <el-tab-pane label="璁惧鏁呴殰" name="璁惧鏁呴殰">-->
-          <!--            <fault v-if="tabListActiveName == '璁惧鏁呴殰'" :clickNodeVal="clickNodeVal" />-->
-          <!--          </el-tab-pane>-->
           <el-tab-pane label="浣跨敤璁板綍" name="浣跨敤璁板綍">
             <record v-if="tabListActiveName == '浣跨敤璁板綍'" :clickNodeVal="clickNodeVal" />
           </el-tab-pane>
@@ -137,7 +120,6 @@
 import files from "./component/files.vue";
 import calibration from "./component/calibration.vue";
 import check from "./component/check.vue";
-import maintenance from "./component/maintenance.vue";
 import borrow from "./component/borrow.vue";
 import fault from "./component/fault.vue";
 import record from "./component/record.vue";
@@ -156,10 +138,13 @@
 import EquipmentMaintenancePlan from "./component/equipmentMaintenancePlan.vue";
 import EquipmentAcceptance from "./component/equipmentAcceptance.vue";
 import QuantityValueTraceabilityPlan from "./component/quantityValueTraceabilityPlan.vue";
+import equipmentMaintenance from "./component/equipmentMaintenance.vue";
+import usageAuthorization from "./component/usageAuthorization.vue";
 import {
   treeDevice,
 } from '@/api/cnas/resourceDemand/device.js'
 export default {
+  name: 'Device',
   components: {
     QuantityValueTraceabilityPlan,
     EquipmentAcceptance,
@@ -175,7 +160,6 @@
     files,
     calibration,
     check,
-    maintenance,
     borrow,
     fault,
     record,
@@ -183,7 +167,9 @@
     management,
     overview,
     resourceReservation,
-    operationInstruction
+    operationInstruction,
+    equipmentMaintenance,
+    usageAuthorization,
   },
   data() {
     return {
@@ -216,8 +202,24 @@
       treeDevice().then(res => {
         let data = res.data;
         this.list = data;
+        console.log('this.list--', this.list)
         this.loading = false
       });
+    },
+    // 鍒ゆ柇鏄惁鏄彾瀛愯妭鐐�
+    isLeafNode(data) {
+      return !data.children || data.children.length === 0;
+    },
+    // 鍒ゆ柇鏄惁闇�瑕佹爣绾�
+    shouldHighlight(data) {
+      if (!data.activationDate) return false;
+      const today = new Date();
+      const targetDate = new Date(data.activationDate);
+      const fiveDaysBeforeTarget = new Date(targetDate);
+      // 璁$畻鍓嶄簲澶╃殑鏃ユ湡
+      fiveDaysBeforeTarget.setDate(targetDate.getDate() - 5);
+
+      return today > fiveDaysBeforeTarget;
     },
     handleNodeClick(val, node, el) {
       // 鐐瑰嚮涓存椂缂撳瓨
@@ -233,13 +235,13 @@
       }
     },
     nodeOpen(data, node, el) {
-      $($(el.$el).find(".node_i")[0]).attr(
-        "class",
-        "node_i el-icon-folder-opened"
-      );
+      // $($(el.$el).find(".node_i")[0]).attr(
+      //   "class",
+      //   "node_i el-icon-folder-opened"
+      // );
     },
     nodeClose(data, node, el) {
-      $($(el.$el).find(".node_i")[0]).attr("class", "node_i el-icon-folder");
+      // $($(el.$el).find(".node_i")[0]).attr("class", "node_i el-icon-folder");
     },
   }
 };
@@ -302,6 +304,8 @@
 
 >>>.el-tabs__content {
   padding-top: 0;
+  max-height: 95%; /* 鏍规嵁闇�姹傝皟鏁撮珮搴� */
+  overflow-y: auto; /* 鍨傜洿鏂瑰悜瓒呭嚭鏃舵樉绀烘粴鍔ㄦ潯 */
 }
 
 >>>.single-line-ellipsis {

--
Gitblit v1.9.3