From e9c7fa1915cd2afbadaef1884324fa7cd5aaaf25 Mon Sep 17 00:00:00 2001
From: yaowanxin <3588231647@qq.com>
Date: 星期二, 29 七月 2025 10:12:06 +0800
Subject: [PATCH] Merge branch 'dev_y_ztns' of http://114.132.189.42:9002/r/lims-ruoyi-before into dev_y_ztns
---
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