|
|
@ -49,12 +49,16 @@ const deviceClassify = device => {
|
|
|
|
if (device?.deviceSort === "精密仪器设备") {
|
|
|
|
if (device?.deviceSort === "精密仪器设备") {
|
|
|
|
if (device?.state === "在线") {
|
|
|
|
if (device?.state === "在线") {
|
|
|
|
return controlEquipmentOnline;
|
|
|
|
return controlEquipmentOnline;
|
|
|
|
|
|
|
|
} else if (device?.state === "离线") {
|
|
|
|
|
|
|
|
return "/src/assets/device/Camera_offline.png";
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
return controlEquipmentMalfunction;
|
|
|
|
return controlEquipmentMalfunction;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
if (device?.state === "在线") {
|
|
|
|
if (device?.state === "在线") {
|
|
|
|
return monitoringOnline;
|
|
|
|
return monitoringOnline;
|
|
|
|
|
|
|
|
} else if (device?.state === "离线") {
|
|
|
|
|
|
|
|
return "/src/assets/device/Instrument_offline.png";
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
return monitoringFaults;
|
|
|
|
return monitoringFaults;
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -92,13 +96,35 @@ const generateRandomDate = () => {
|
|
|
|
<template>
|
|
|
|
<template>
|
|
|
|
<div :class="cardClass">
|
|
|
|
<div :class="cardClass">
|
|
|
|
<div class="device-header">
|
|
|
|
<div class="device-header">
|
|
|
|
<div class="mr-2 device--logo">
|
|
|
|
<!-- <div class="mr-2 device--logo">
|
|
|
|
<control />
|
|
|
|
<control />
|
|
|
|
<monitor1 v-if="false" />
|
|
|
|
<monitor1 v-if="false" />
|
|
|
|
<monitor2 v-if="false" />
|
|
|
|
<monitor2 v-if="false" />
|
|
|
|
|
|
|
|
</div> -->
|
|
|
|
|
|
|
|
<div class="device-icon">
|
|
|
|
|
|
|
|
<div
|
|
|
|
|
|
|
|
class="w-[100px] h-[100px] flex items-center justify-center"
|
|
|
|
|
|
|
|
v-if="props.device?.state === '离线'"
|
|
|
|
|
|
|
|
>
|
|
|
|
|
|
|
|
<img
|
|
|
|
|
|
|
|
class="w-[82px] h-[58px]"
|
|
|
|
|
|
|
|
:src="
|
|
|
|
|
|
|
|
device?.deviceSort === '精密仪器设备'
|
|
|
|
|
|
|
|
? '/src/assets/device/Camera_offline.png'
|
|
|
|
|
|
|
|
: '/src/assets/device/Instrument_offline.png'
|
|
|
|
|
|
|
|
"
|
|
|
|
|
|
|
|
alt=""
|
|
|
|
|
|
|
|
srcset=""
|
|
|
|
|
|
|
|
/>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<AnimationPic
|
|
|
|
|
|
|
|
class="device-icon-box"
|
|
|
|
|
|
|
|
:value="deviceClassify(device)"
|
|
|
|
|
|
|
|
v-else
|
|
|
|
|
|
|
|
/>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="device-name">{{ device?.deviceSort }}</div>
|
|
|
|
<div class="device-name">{{ device?.deviceSort }}</div>
|
|
|
|
<div :class="stateClass">{{ device?.state }}</div>
|
|
|
|
<!-- <div :class="stateClass">{{ device?.state }}</div> -->
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="device-content">
|
|
|
|
<div class="device-content">
|
|
|
|
<div class="device-info">
|
|
|
|
<div class="device-info">
|
|
|
@ -108,6 +134,9 @@ const generateRandomDate = () => {
|
|
|
|
<div>
|
|
|
|
<div>
|
|
|
|
设备分类:<span>DEVICETYPE_{{ generateRandomNumber() }}</span>
|
|
|
|
设备分类:<span>DEVICETYPE_{{ generateRandomNumber() }}</span>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div>
|
|
|
|
|
|
|
|
创建时间:<span>{{ generateRandomDate() }}</span>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
<div>
|
|
|
|
<div>
|
|
|
|
是否启用:
|
|
|
|
是否启用:
|
|
|
|
<el-tag
|
|
|
|
<el-tag
|
|
|
@ -120,13 +149,8 @@ const generateRandomDate = () => {
|
|
|
|
>{{ device?.isEnabled ? "已启用" : "未启用" }}</el-tag
|
|
|
|
>{{ device?.isEnabled ? "已启用" : "未启用" }}</el-tag
|
|
|
|
>
|
|
|
|
>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div>
|
|
|
|
|
|
|
|
创建时间:<span>{{ generateRandomDate() }}</span>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="device-icon">
|
|
|
|
|
|
|
|
<AnimationPic class="device-icon-box" :value="deviceClassify(device)" />
|
|
|
|
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div :class="stateClass">{{ device?.state }}</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</template>
|
|
|
|
</template>
|
|
|
@ -134,14 +158,17 @@ const generateRandomDate = () => {
|
|
|
|
<style lang="scss" scoped>
|
|
|
|
<style lang="scss" scoped>
|
|
|
|
.device-card {
|
|
|
|
.device-card {
|
|
|
|
box-sizing: border-box;
|
|
|
|
box-sizing: border-box;
|
|
|
|
height: 220px;
|
|
|
|
height: 146px;
|
|
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
|
|
justify-content: center;
|
|
|
|
|
|
|
|
align-items: center;
|
|
|
|
// background-color: skyblue;
|
|
|
|
// background-color: skyblue;
|
|
|
|
border: 1.5px solid #52c41a;
|
|
|
|
border: 1.5px solid #52c41a;
|
|
|
|
border-radius: 8px;
|
|
|
|
border-radius: 8px;
|
|
|
|
box-shadow: 0 8px 16px 0 rgb(0 0 0 / 10%);
|
|
|
|
box-shadow: 0 8px 16px 0 rgb(0 0 0 / 10%);
|
|
|
|
|
|
|
|
|
|
|
|
&_fault {
|
|
|
|
&_fault {
|
|
|
|
border: 1.5px solid #e80d0d;
|
|
|
|
border: 1.5px solid #f15d53;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
&_offline {
|
|
|
|
&_offline {
|
|
|
@ -152,46 +179,56 @@ const generateRandomDate = () => {
|
|
|
|
.device-header {
|
|
|
|
.device-header {
|
|
|
|
position: relative;
|
|
|
|
position: relative;
|
|
|
|
display: flex;
|
|
|
|
display: flex;
|
|
|
|
|
|
|
|
flex-direction: column;
|
|
|
|
align-items: center;
|
|
|
|
align-items: center;
|
|
|
|
justify-content: flex-start;
|
|
|
|
justify-content: center;
|
|
|
|
width: 100%;
|
|
|
|
width: 128px;
|
|
|
|
height: 64px;
|
|
|
|
height: 100%;
|
|
|
|
padding: 16px;
|
|
|
|
padding: 16px;
|
|
|
|
border-bottom: 1px solid #e0e0e0;
|
|
|
|
border-right: 1px solid #e0e0e0;
|
|
|
|
|
|
|
|
.device-icon {
|
|
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
|
|
align-items: flex-end;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.device-icon-box {
|
|
|
|
|
|
|
|
width: 100px;
|
|
|
|
|
|
|
|
height: 100px;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
.device-name {
|
|
|
|
.device-name {
|
|
|
|
font-size: 16px;
|
|
|
|
font-size: 14px;
|
|
|
|
font-weight: 600;
|
|
|
|
font-weight: 600;
|
|
|
|
line-height: 22px;
|
|
|
|
line-height: 22px;
|
|
|
|
color: #000;
|
|
|
|
color: #333;
|
|
|
|
letter-spacing: 0;
|
|
|
|
letter-spacing: 0;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.device-state {
|
|
|
|
// .device-state {
|
|
|
|
position: absolute;
|
|
|
|
// position: absolute;
|
|
|
|
top: -1px;
|
|
|
|
// top: -1px;
|
|
|
|
right: -1px;
|
|
|
|
// right: -1px;
|
|
|
|
width: 48px;
|
|
|
|
// width: 48px;
|
|
|
|
height: 24px;
|
|
|
|
// height: 24px;
|
|
|
|
font-size: 14px;
|
|
|
|
// font-size: 14px;
|
|
|
|
line-height: 24px;
|
|
|
|
// line-height: 24px;
|
|
|
|
color: #fff;
|
|
|
|
// color: #fff;
|
|
|
|
text-align: center;
|
|
|
|
// text-align: center;
|
|
|
|
background-color: #52c41a;
|
|
|
|
// background-color: #52c41a;
|
|
|
|
border-radius: 0 8px;
|
|
|
|
// border-radius: 0 8px;
|
|
|
|
|
|
|
|
|
|
|
|
&_fault {
|
|
|
|
// &_fault {
|
|
|
|
background-color: #e80d0d;
|
|
|
|
// background-color: #e80d0d;
|
|
|
|
}
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
&_offline {
|
|
|
|
// &_offline {
|
|
|
|
background-color: #e0e0e0;
|
|
|
|
// background-color: #e0e0e0;
|
|
|
|
color: #999;
|
|
|
|
// color: #999;
|
|
|
|
}
|
|
|
|
// }
|
|
|
|
}
|
|
|
|
// }
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.device-content {
|
|
|
|
.device-content {
|
|
|
|
|
|
|
|
position: relative;
|
|
|
|
display: flex;
|
|
|
|
display: flex;
|
|
|
|
justify-content: space-between;
|
|
|
|
justify-content: space-between;
|
|
|
|
width: 100%;
|
|
|
|
width: 100%;
|
|
|
@ -210,10 +247,11 @@ const generateRandomDate = () => {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.device-tag {
|
|
|
|
.device-tag {
|
|
|
|
|
|
|
|
border: none;
|
|
|
|
color: #52c41a;
|
|
|
|
color: #52c41a;
|
|
|
|
|
|
|
|
|
|
|
|
&_off {
|
|
|
|
&_off {
|
|
|
|
color: #e80d0d;
|
|
|
|
color: #f15d53;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -227,6 +265,28 @@ const generateRandomDate = () => {
|
|
|
|
height: 100px;
|
|
|
|
height: 100px;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.device-state {
|
|
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
|
|
top: 5px;
|
|
|
|
|
|
|
|
right: 0px;
|
|
|
|
|
|
|
|
width: 48px;
|
|
|
|
|
|
|
|
height: 24px;
|
|
|
|
|
|
|
|
font-size: 14px;
|
|
|
|
|
|
|
|
line-height: 24px;
|
|
|
|
|
|
|
|
color: #fff;
|
|
|
|
|
|
|
|
text-align: center;
|
|
|
|
|
|
|
|
background-color: #52c41a;
|
|
|
|
|
|
|
|
border-radius: 0 8px;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
&_fault {
|
|
|
|
|
|
|
|
background-color: #f15d53;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
&_offline {
|
|
|
|
|
|
|
|
background-color: #e0e0e0;
|
|
|
|
|
|
|
|
color: #999;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
</style>
|
|
|
|
</style>
|
|
|
|