This commit is contained in:
123@123.com 2023-12-27 16:30:00 +08:00
parent 7867e2562d
commit 5758c19ac7
17 changed files with 560 additions and 256 deletions

View File

@ -0,0 +1,24 @@
<!--
* @FilePath: Img.vue
* @Author: zz
* @Date: 2023-10-26 15:55:38
* @LastEditors: Please set LastEditors
* @LastEditTime: 2023-11-02 11:43:12
* @Descripttion:
-->
<template>
<div>
<el-image style="width: 100%; height: 100%" :src="src" alt="image" fit="fill" />
</div>
</template>
<script lang="ts" setup>
// const url ='https://www.richpeace.cn/uploadfile/thumb/20885c72ca35d75619d6a378edea9f76/880x580_auto.jpg'
defineProps({
src: {
type: String,
required: true,
},
});
</script>
<style>
</style>

View File

@ -4,21 +4,21 @@
<div class="s1"></div> <div class="s1"></div>
<div class="h1"></div> <div class="h1"></div>
<div class="s2"></div> <div class="s2"></div>
<div class="title">{{title}}</div> <div class="title">{{num}}</div>
<div class="val">{{ val }}</div> <div class="val">{{ numdata }}</div>
</div> </div>
</template> </template>
<script setup lang='ts'> <script setup lang='ts'>
import Pan from './Pan.vue'; import Pan from './Pan.vue';
const prop = defineProps({ const prop = defineProps({
title: { num: {
type: String, type: String,
default: '机架号' required: true,
}, },
val: { numdata: {
type: String, type: String,
default: 'RP2011001#' required: true,
} }
}) })
</script> </script>
@ -70,7 +70,7 @@ const prop = defineProps({
font-size: 20px; font-size: 20px;
color: #B2EDED; color: #B2EDED;
top: 410px; top: 410px;
left: 56px; left: 40px;
} }
.val { .val {
width: 100%; width: 100%;

View File

@ -4,21 +4,21 @@
<div class="s1"></div> <div class="s1"></div>
<div class="h1"></div> <div class="h1"></div>
<div class="s2"></div> <div class="s2"></div>
<div class="title">{{ title }}</div> <div class="title">{{ state }}</div>
<div class="val">{{ val }}</div> <div class="val">{{ statedata }}</div>
</div> </div>
</template> </template>
<script setup lang='ts'> <script setup lang='ts'>
import Pan from './Pan.vue'; import Pan from './Pan.vue';
const prop = defineProps({ const prop = defineProps({
title: { state: {
type: String, type: String,
default: '设备状态' required: true,
}, },
val: { statedata: {
type: String, type: String,
default: '工作中' required: true,
} }
}) })
</script> </script>

View File

@ -1,93 +1,102 @@
<template> <template>
<div ref="LChartRef"></div> <div ref="LChartRef" class="chart-container"></div>
</template> </template>
<script setup lang='ts'> <script setup lang="ts">
import { ref, getCurrentInstance, onMounted } from 'vue' import { ref, getCurrentInstance, onMounted } from "vue";
const prop = defineProps<{
config: {
name: string;
data: any;
xAxis: string[];
};
}>();
const prop = defineProps({
config: {
type: Object,
default: {
title:''
}
}
})
let LChartRef = ref(null); let LChartRef = ref(null);
const { proxy } = getCurrentInstance() as any; const { proxy } = getCurrentInstance() as any;
let charts = null; let charts = null;
const setCharts = ()=>{ const setCharts = () => {
charts = proxy.$echarts.init(LChartRef.value, 'dark') charts = proxy.$echarts.init(LChartRef.value, "dark");
let option = { let option = {
title: { backgroundColor: "#0E0E0E",
text: prop.config.title, title: {
textStyle:{ text: prop.config.title,
fontSize: 30, textStyle: {
color: '#20aec5' fontSize: 18,
}, color: "#33CCFF",
left: '20px' },
left: "80%",
top: "-2px",
},
tooltip: {
trigger: "axis",
},
grid: {
left: "2%",
right: "6%",
bottom: "3%",
containLabel: true,
},
xAxis: {
type: "category",
boundaryGap: false,
axisLine: {
show: true, // 线
lineStyle: {
color: "#5DB6F5", // 线
width: 1, // 线
}, },
tooltip: { },
trigger: 'axis' data:prop.config.xAxis
},
yAxis: {
type: "value",
name: "分钟(min",
axisLine: {
show: true, // 线
lineStyle: {
color: "#5DB6F5", // 线
width: 1, // 线
}, },
legend: { },
data: ['Email', 'Union Ads', 'Video Ads', 'Direct', 'Search Engine'] },
}, series: [
grid: { {
left: '3%', name: "Email",
right: '4%', type: "line",
bottom: '3%', data:prop.config.data,
containLabel: true },
}, ],
xAxis: { };
type: 'category',
boundaryGap: false, charts.setOption(option);
data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] };
},
yAxis: { // watch(() => prop.config.data,(newVal) => {
type: 'value' // data = newVal
}, // charts.setOption({
series: [ // xAxis: {
{ // type: "category",
name: 'Email', // boundaryGap:false,
type: 'line', // data:prop.config.xAxis
data: [120, 132, 101, 134, 90, 230, 210] // },
}, // series:data
{ // })
name: 'Union Ads', // })
type: 'line',
data: [220, 182, 191, 234, 290, 330, 310]
},
{
name: 'Video Ads',
type: 'line',
data: [150, 232, 201, 154, 190, 330, 410]
},
{
name: 'Direct',
type: 'line',
data: [320, 332, 301, 334, 390, 330, 320]
},
{
name: 'Search Engine',
type: 'line',
data: [820, 932, 901, 934, 1290, 1330, 1320]
}
]
};
charts.setOption(option);
}
onMounted(() => { onMounted(() => {
setCharts() setCharts();
}) });
</script> </script>
<style scoped> <style scoped>
.chart-container {
width: 820px;
height: 470px;
}
.cc { .cc {
width: 400px; width: 500px;
height: 400px; height: 400px;
} }
</style> </style>

View File

@ -0,0 +1,42 @@
<!--
* @FilePath: Name.vue
* @Author: zz
* @Date: 2023-10-26 14:54:46
* @LastEditors: Please set LastEditors
* @LastEditTime: 2023-11-14 14:21:52
* @Descripttion:
-->
<template>
<div class="rect"></div>
<div class="name">{{ name }}</div>
</template>
<script setup lang='ts'>
const prop = defineProps({
name: {
type: String,
required: true,
},
})
</script>
<style>
.rect {
position: absolute;
width: 223px;
height: 75px;
background-image: url('./img/u506.svg');
left: 40%;
top: 343px;
}
.name{
position: absolute;
width: 260px;
top: 335px;
left: 38%;
font-weight: 700;
font-style: normal;
font-size: 36px;
color: #CFEBEB;
}
</style>

View File

@ -0,0 +1,35 @@
<!--
* @FilePath: Pan2.vue
* @Author: zz
* @Date: 2023-10-26 10:12:10
* @LastEditors: Please set LastEditors
* @LastEditTime: 2023-10-26 10:28:39
* @Descripttion:
-->
<template>
<div class="pan">
<div class="light"></div>
</div>
</template>
<script setup lang='ts'>
</script>
<style scoped>
.pan {
position: relative;
width: 150px;
height: 120px;
background-image: url('./img/u356.png');
background-size: 100% 100%;
}
.light {
position: absolute;
width: 79px;
height: 40px;
left: 35px;
top: 38px;
background-image: url('./img/u25.png');
background-size: 100% 100%;
}
</style>

View File

@ -1,24 +1,41 @@
<template> <template>
<div class="left1"> <div class="left1">
<!-- 实际产量 -->
<Pan2 class="pan2"></Pan2>
<div class="s12"></div>
<div class="h12"></div>
<div class="s21"></div>
<div class="title2">{{ actoutput }}</div>
<div class="val2">{{ actdata }}</div>
<!-- 计划产量 -->
<Pan class="pan1"></Pan> <Pan class="pan1"></Pan>
<div class="s1"></div> <div class="s1"></div>
<div class="h1"></div> <div class="h1"></div>
<div class="s2"></div> <div class="s2"></div>
<div class="title">{{ title }}</div> <div class="title">{{ planoutput }}</div>
<div class="val">{{ val }}</div> <div class="val">{{ plandata }}</div>
</div> </div>
</template> </template>
<script setup lang='ts'> <script setup lang='ts'>
import Pan from './Pan.vue'; import Pan from './Pan.vue';
import Pan2 from './Pan2.vue'
const prop = defineProps({ const prop = defineProps({
title: { planoutput: {
type: String, type: String,
default: '压脚次数' required: true,
}, },
val: { plandata: {
type: String, type: String,
default: '10次' required: true,
},
actoutput: {
type: String,
required: true,
},
plandata: {
type: String,
required: true,
} }
}) })
</script> </script>
@ -36,6 +53,13 @@ const prop = defineProps({
left: 0px; left: 0px;
top: 0px; top: 0px;
} }
.pan2 {
position: absolute;
width: 150px;
height: 120px;
left: 265px;
top: -40px;
}
.s1 { .s1 {
position: absolute; position: absolute;
width: 258px; width: 258px;
@ -45,6 +69,16 @@ const prop = defineProps({
top: 343px; top: 343px;
transform: rotate(90deg); transform: rotate(90deg);
} }
.s12 {
position: absolute;
width: 258px;
height: 6px;
background-image: url('./img/u829p000.svg');
left: 216px;
top: 192px;
transform: rotate(90deg);
background-repeat:no-repeat
}
.h1 { .h1 {
position: absolute; position: absolute;
width: 100px; width: 100px;
@ -53,6 +87,14 @@ const prop = defineProps({
left: 35px; left: 35px;
top: 467px; top: 467px;
} }
.h12 {
position: absolute;
width: 135px;
height: 6px;
background-image: url('./img/u829p001.svg');
left: 210px;
top: 99px;
}
.s2 { .s2 {
position: absolute; position: absolute;
width: 124px; width: 124px;
@ -62,6 +104,16 @@ const prop = defineProps({
top: 528px; top: 528px;
transform: rotate(90deg); transform: rotate(90deg);
} }
.s21 {
position: absolute;
width: 124px;
height: 6px;
background-image: url('./img/u829p002.svg');
left: 150px;
top: 160px;
transform: rotate(90deg);
background-repeat:no-repeat
}
.title { .title {
position: absolute; position: absolute;
font-family: "Arial Negreta", "Arial Normal", "Arial", sans-serif; font-family: "Arial Negreta", "Arial Normal", "Arial", sans-serif;
@ -70,7 +122,7 @@ const prop = defineProps({
font-size: 20px; font-size: 20px;
color: #B2EDED; color: #B2EDED;
top: 240px; top: 240px;
left: 42px; left: 25px;
} }
.val { .val {
width: 100%; width: 100%;
@ -83,4 +135,26 @@ const prop = defineProps({
top: 55px; top: 55px;
left: 0; left: 0;
} }
.title2 {
position: absolute;
font-family: "Arial Negreta", "Arial Normal", "Arial", sans-serif;
font-weight: 700;
font-style: normal;
font-size: 20px;
color: #B2EDED;
top: 110px;
left: 235px;
width:100px;
}
.val2 {
width: 100%;
position: absolute;
font-family: "Arial Negreta", "Arial Normal", "Arial", sans-serif;
font-weight: 700;
font-style: normal;
font-size: 26px;
color: #B2EDED;
top: -40px;
left: 220px;
}
</style> </style>

View File

@ -4,21 +4,21 @@
<div class="s1"></div> <div class="s1"></div>
<div class="h1"></div> <div class="h1"></div>
<div class="s2"></div> <div class="s2"></div>
<div class="title">{{ title }}</div> <div class="title">{{ cut }}</div>
<div class="val">{{ val }}</div> <div class="val">{{ cutdata }}</div>
</div> </div>
</template> </template>
<script setup lang='ts'> <script setup lang='ts'>
import Pan from './Pan.vue'; import Pan from './Pan.vue';
const prop = defineProps({ const prop = defineProps({
title: { cut: {
type: String, type: String,
default: '剪线次数' required: true,
}, },
val: { cutdata: {
type: String, type: String,
default: '20次' required: true,
} }
}) })
</script> </script>
@ -70,7 +70,7 @@ const prop = defineProps({
font-size: 20px; font-size: 20px;
color: #B2EDED; color: #B2EDED;
top: 410px; top: 410px;
left: 34px; left: 40px;
} }
.val { .val {
width: 100%; width: 100%;

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" width="15px" height="13px" xmlns="http://www.w3.org/2000/svg">
<g transform="matrix(1 0 0 1 -37 -614 )">
<path d="M 1.6964285784040172 0.16666666015625076 L 8.303571428571429 6.416666660156251 L 1.6964285784040178 12.666666660156253 L 0.3571428641183032 11.5 L 5.803571421805245 6.416666660156251 L 0.35714286411830276 1.3333333396484388 L 1.6964285784040172 0.16666666015625076 Z M 7.946428564453126 0.16666666015625076 L 14.642857135881698 6.416666660156251 L 7.946428564453126 12.666666660156253 L 6.696428571428572 11.5 L 12.14285714983259 6.4166666599609385 L 6.696428571428572 1.333333339843751 L 7.946428564453126 0.16666666015625076 Z " fill-rule="nonzero" fill="#0066ff" stroke="none" transform="matrix(1 0 0 1 37 614 )" />
</g>
</svg>

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" width="15px" height="13px" xmlns="http://www.w3.org/2000/svg">
<g transform="matrix(1 0 0 1 -205 -614 )">
<path d="M 13.303571421595983 12.83333333984375 L 6.696428571428572 6.583333339843751 L 13.303571421595983 0.3333333398437497 L 14.642857135881698 1.5 L 9.196428578404019 6.58333333984375 L 14.642857135881698 11.666666660156249 L 13.303571421595983 12.83333333984375 Z M 7.053571435546875 12.83333333984375 L 0.3571428641183037 6.583333339843751 L 7.053571435546877 0.3333333398437497 L 8.303571428571429 1.5 L 2.8571428501674103 6.58333333984375 L 8.303571428571429 11.666666660156249 L 7.053571435546875 12.83333333984375 Z " fill-rule="nonzero" fill="#0066ff" stroke="none" transform="matrix(1 0 0 1 205 614 )" />
</g>
</svg>

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" width="223px" height="75px" xmlns="http://www.w3.org/2000/svg">
<g transform="matrix(1 0 0 1 -1158 -406 )">
<path d="M 1159 416 A 9 9 0 0 1 1168 407 L 1371 407 A 9 9 0 0 1 1380 416 L 1380 471 A 9 9 0 0 1 1371 480 L 1168 480 A 9 9 0 0 1 1159 471 L 1159 416 Z " fill-rule="nonzero" fill="#3f81f0" stroke="none" fill-opacity="0.3686274509803922" />
<path d="M 1158.5 416 A 9.5 9.5 0 0 1 1168 406.5 L 1371 406.5 A 9.5 9.5 0 0 1 1380.5 416 L 1380.5 471 A 9.5 9.5 0 0 1 1371 480.5 L 1168 480.5 A 9.5 9.5 0 0 1 1158.5 471 L 1158.5 416 Z " stroke-width="1" stroke="#3f81f0" fill="none" stroke-opacity="0.3686274509803922" />
</g>
</svg>

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" width="5px" height="27px" xmlns="http://www.w3.org/2000/svg">
<g transform="matrix(1 0 0 1 -38 -177 )">
<path d="M 40 178 L 40 202 " stroke-width="2" stroke="#0a3e7b" fill="none" />
</g>
</svg>

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" width="38px" height="6px" preserveAspectRatio="xMinYMid meet" viewBox="1706 175 38 4" xmlns="http://www.w3.org/2000/svg">
<g transform="matrix(0 -1 1 0 1548 1902 )">
<path d="M 133 5.9999996514168865 L 133 32 L 1 32 L 1 48 " stroke-width="2" stroke="#445382" fill="none" transform="matrix(1 0 0 1 1592 161 )" />
<path d="M 133 0 C 131.06700337559224 0 129.5 1.5670033757405226 129.5 3.5000000001483 C 129.5 5.432996624556077 131.06700337559224 7.0000000001483 133 7.0000000001483 C 134.93299662440776 7.0000000001483 136.5 5.432996624556077 136.5 3.5000000001483 C 136.5 1.5670033757405226 134.93299662440776 0 133 0 Z M 133 2.0000000001483 C 133.82842712474618 2.0000000001483 134.5 2.67157287540211 134.5 3.5000000001483 C 134.5 4.32842712489449 133.82842712474618 5.0000000001483 133 5.0000000001483 C 132.17157287525382 5.0000000001483 131.5 4.32842712489449 131.5 3.5000000001483 C 131.5 2.67157287540211 132.17157287525382 2.0000000001483 133 2.0000000001483 Z " fill-rule="nonzero" fill="#445382" stroke="none" transform="matrix(1 0 0 1 1592 161 )" />
</g>
</svg>

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" width="138px" height="6px" preserveAspectRatio="xMinYMid meet" viewBox="1590 191 138 4" xmlns="http://www.w3.org/2000/svg">
<g transform="matrix(-1 -0 -0 -1 3318 386 )">
<path d="M 133 5.9999996514168865 L 133 32 L 1 32 L 1 48 " stroke-width="2" stroke="#445382" fill="none" transform="matrix(1 0 0 1 1592 161 )" />
<path d="M 133 0 C 131.06700337559224 0 129.5 1.5670033757405226 129.5 3.5000000001483 C 129.5 5.432996624556077 131.06700337559224 7.0000000001483 133 7.0000000001483 C 134.93299662440776 7.0000000001483 136.5 5.432996624556077 136.5 3.5000000001483 C 136.5 1.5670033757405226 134.93299662440776 0 133 0 Z M 133 2.0000000001483 C 133.82842712474618 2.0000000001483 134.5 2.67157287540211 134.5 3.5000000001483 C 134.5 4.32842712489449 133.82842712474618 5.0000000001483 133 5.0000000001483 C 132.17157287525382 5.0000000001483 131.5 4.32842712489449 131.5 3.5000000001483 C 131.5 2.67157287540211 132.17157287525382 2.0000000001483 133 2.0000000001483 Z " fill-rule="nonzero" fill="#445382" stroke="none" transform="matrix(1 0 0 1 1592 161 )" />
</g>
</svg>

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" width="22px" height="6px" preserveAspectRatio="xMinYMid meet" viewBox="1582 199 22 4" xmlns="http://www.w3.org/2000/svg">
<g transform="matrix(0 -1 1 0 1392 1794 )">
<path d="M 133 5.9999996514168865 L 133 32 L 1 32 L 1 48 " stroke-width="2" stroke="#445382" fill="none" transform="matrix(1 0 0 1 1592 161 )" />
<path d="M 133 0 C 131.06700337559224 0 129.5 1.5670033757405226 129.5 3.5000000001483 C 129.5 5.432996624556077 131.06700337559224 7.0000000001483 133 7.0000000001483 C 134.93299662440776 7.0000000001483 136.5 5.432996624556077 136.5 3.5000000001483 C 136.5 1.5670033757405226 134.93299662440776 0 133 0 Z M 133 2.0000000001483 C 133.82842712474618 2.0000000001483 134.5 2.67157287540211 134.5 3.5000000001483 C 134.5 4.32842712489449 133.82842712474618 5.0000000001483 133 5.0000000001483 C 132.17157287525382 5.0000000001483 131.5 4.32842712489449 131.5 3.5000000001483 C 131.5 2.67157287540211 132.17157287525382 2.0000000001483 133 2.0000000001483 Z " fill-rule="nonzero" fill="#445382" stroke="none" transform="matrix(1 0 0 1 1592 161 )" />
</g>
</svg>

Binary file not shown.

After

Width:  |  Height:  |  Size: 195 KiB

View File

@ -1,209 +1,283 @@
<template> <template>
<div class="container"> <div class="container">
<div class="header"> <div class="header">
<div class="title"> <div class="title">
<header2 ref="headerref" :width="'100%'" :height="'100px'" :title="'设备大屏展示系统'" :titleTip="''" <header2
:typeFun="['time']" :alarmType="[]"></header2> ref="headerref"
</div> :width="'100%'"
</div> :height="'100px'"
<div class="content"> :title="'微工厂设备物联大屏'"
<div class="left"> :titleTip="''"
<div class="lt"> :typeFun="['time']"
<div class="lt-title">工作效率</div> :alarmType="[]"
<div class="lt-value">95</div> ></header2>
<div class="elli_tray"> </div>
<img src="../../../assets/img/elli_tray.svg" alt="">
</div>
<div class="tray">
<img src="../../../assets/img/tray.svg" alt="">
</div>
<ul class="scale">
<li style="top:44%;left:26%;">10</li>
<li style="top: 47%;left: 30%;">20</li>
<li style="top: 49%;left: 34%;">30</li>
<li style="top: 52%;left: 39%;">40</li>
<li style="top: 53.5%;left: 45%;">50</li>
<li style="top: 55%;left: 51%;">60</li>
<li style="top: 56%;left: 56%;">70</li>
<li style="top: 56%;left: 62%;">80</li>
<li style="top: 55.5%;left: 67%;">90</li>
<li style="top: 54%;left: 71%;">100</li>
</ul>
</div>
<div class="lb">
<LineChart class="line" :config="lineConfig"></LineChart>
</div>
</div>
<div class="right">
<Left1 class="left1"></Left1>
<Left2 class="left2"></Left2>
<Right1 class="left3"></Right1>
<Right2 class="left4"></Right2>
</div>
</div>
</div> </div>
<div class="content">
<div class="left">
<div class="lt">
<div class="ico" style="top: 30px; left: 20px; width: 20px; height: 50px"></div>
<div class="lt-title" style="top: 20px; left: 50px"> </div>
<div class="lt-value">{{ allData.activ }}%</div>
<div class="elli_tray">
<img src="../../../assets/img/elli_tray.svg" alt="" />
</div>
<div class="tray">
<img src="../../../assets/img/tray.svg" alt="" />
</div>
<ul class="scale">
<li style="top: 44%; left: 26%">10</li>
<li style="top: 47%; left: 30%">20</li>
<li style="top: 49%; left: 34%">30</li>
<li style="top: 52%; left: 39%">40</li>
<li style="top: 53.5%; left: 45%">50</li>
<li style="top: 55%; left: 51%">60</li>
<li style="top: 56%; left: 56%">70</li>
<li style="top: 56%; left: 62%">80</li>
<li style="top: 55.5%; left: 67%">90</li>
<li style="top: 54%; left: 71%">100</li>
</ul>
</div>
<div class="lb">
<div
class="ico"
style="top: 580px; left: 20px; width: 20px; height: 50px"
></div>
<div class="lt-title" style="top: 570px; left: 50px">缝纫时间</div>
<LineChart class="line" :config="lineConfig"></LineChart>
</div>
</div>
<div class="right">
<Name class="name" :name="allData.name"></Name>
<Left1 class="num" :num="allData.num" :numdata="allData.numdata"></Left1>
<Left2
class="state"
:state="allData.state"
:statedata="allData.statedata"
></Left2>
<Right1
class="output"
:planoutput="allData.planoutput"
:plandata="allData.plandata"
:actoutput="allData.actoutput"
:actdata="allData.actdata"
></Right1>
<Right2 class="cut" :cut="allData.cut" :cutdata="allData.cutdata"></Right2>
</div>
<div class="imgbox">
<Img class="imgbig" :src="imgUrl" ref="imgRef"></Img>
</div>
</div>
</div>
</template> </template>
<script setup lang='ts'> <script setup lang="ts">
import { ref, getCurrentInstance, onMounted } from 'vue' import { ref, getCurrentInstance, reactive, onMounted } from "vue";
import header2 from '@/components/headerBox/header2.vue' import header2 from "@/components/headerBox/header2.vue";
import LineChart from './LineChart.vue' import LineChart from "./LineChart.vue";
import Left1 from './Left1.vue' import Left1 from "./Left1.vue";
import Left2 from './Left2.vue' import Left2 from "./Left2.vue";
import Right1 from './Right1.vue' import Right1 from "./Right1.vue";
import Right2 from './Right2.vue' import Right2 from "./Right2.vue";
import Name from "./Name.vue";
import Img from "./Img.vue";
let allData = reactive({
activ: 95,
name: "一体型四自动高速平缝机",
num: "设备编号",
numdata: "123456",
state: "设备状态",
statedata: "待机",
planoutput: "计划日产量",
plandata: "",
actoutput: "实际日产量",
actdata: "",
cut: "剪线次数",
cutdata: "",
imgUrl: "",
});
let imgRef = ref(null);
onMounted(() =>{
});
let lineConfig = { let lineConfig = {
title: '工作时间' title: "时间趋势",
} data: [120, 0, 101, 134, 0, 230, 210],
xAxis: [
"10-26 10:41:26",
"10-26 10:41:26",
"10-26 10:41:26",
"10-26 10:41:26",
"10-26 10:41:26",
"10-26 10:41:26",
"10-26 10:41:26",
],
};
// 线
</script> </script>
<style scoped> <style scoped>
.container { .container {
height: 1080px; height: 1080px;
width: 1920px; width: 1920px;
color: #20aec5; color: #cfebeb;
background-color: #100c2a; background-color: #0e0e0e;
} }
.header { .header {
height: 100px; height: 100px;
width: 1920px; width: 1920px;
} }
.content { .content {
width: 1920px; width: 1920px;
height: 980px; height: 980px;
display: flex; display: flex;
flex-direction: row; flex-direction: row;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
} }
.left { .left {
width: 780px; width: 780px;
height: 100%; height: 100%;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
} }
.right { .right {
position: relative; position: relative;
width: 1130px; width: 1130px;
height: 100%; height: 100%;
right: 30px;
} }
.lt, .lt,
.lb { .lb {
width: 100%; width: 100%;
height: 48%; height: 48%;
} }
.lt { .lt {
position: relative; position: relative;
} }
.elli_tray { .elli_tray {
border-width: 0px; border-width: 0px;
position: absolute; position: absolute;
top: 51%; top: 58%;
left: 50%; left: 45%;
width: 351px; width: 380px;
height: 46px; height: 60px;
transform: rotate(6deg) translate(-50%, -50%); transform: rotate(7deg) translate(-50%, -50%);
z-index: 2; z-index: 2;
} }
img { img {
width: 100%; width: 100%;
height: 100%; height: 100%;
} }
.tray { .tray {
border-width: 0px; border-width: 0px;
position: absolute; position: absolute;
top: 60%; top: 68%;
left: 50%; left: 45%;
width: 426px; width: 500px;
height: 95px; height: 120px;
transform: rotate(8deg) translate(-50%, -50%); transform: rotate(8deg) translate(-50%, -50%);
}
.ico {
position: absolute;
background-image: url("./img/u455.svg");
background-repeat: no-repeat;
} }
.lt-title { .lt-title {
position: absolute; position: absolute;
top: 10px; font-size: 28px;
left: 20px; font-weight: bold;
font-size: 30px; color: #33ccff;
font-weight: bold; z-index: 3;
color: #20aec5;
z-index: 3;
} }
.lt-value { .lt-value {
position: absolute; position: absolute;
top: 40%; top: 40%;
left: 50%; left: 48%;
transform: translate(-50%, -50%); transform: translate(-50%, -50%);
font-size: 110px; font-size: 110px;
font-weight: bold; font-weight: bold;
color: #20aec5; color: rgb(9, 238, 216);
z-index: 3; z-index: 3;
} }
.scale { .scale {
width: 100%; width: 100%;
height: 100%; height: 100%;
position: absolute; position: absolute;
display: flex; display: flex;
font-size: 18px; font-size: 18px;
color: #3366ff; color: #3366ff;
transform: translate(-50%, -50%); transform: translate(-50%, -50%);
top: 50%; top: 58%;
left: 50%; left: 45%;
} }
.scale li { .scale li {
text-align: center; text-align: center;
line-height: 30px; top: -20px;
position: absolute; line-height: 30px;
z-index: 3; position: absolute;
z-index: 3;
} }
.line { .line {
width: 100%; width: 100%;
height: 100%; height: 100%;
} }
.num {
.left1 { position: absolute;
position: absolute; width: 247px;
width: 247px; height: 100%;
height: 100%; left: 0px;
left: 0px; top: 0px;
top: 0px;
} }
.left2 { .state {
position: absolute; position: absolute;
width: 247px; width: 247px;
height: 100%; height: 100%;
left: 247px; left: 247px;
top: 0px; top: 0px;
} }
.left3 { .output {
position: absolute; position: absolute;
width: 247px; width: 247px;
height: 100%; height: 100%;
left: 636px; left: 636px;
top: 0px; top: 0px;
} }
.left4 { .cut {
position: absolute; position: absolute;
width: 247px; width: 247px;
height: 100%; height: 100%;
left: 883px; left: 883px;
top: 0px; top: 0px;
}
.imgbox {
position: absolute;
display: flex; /* 创建一个Flex容器 */
justify-content: center; /* 水平居中 */
align-items: center; /* 垂直居中 */
width: 33%;
height: 37%;
right: 14.5%;
top: 62%;
border: 1px solid #fff;
}
.imgbig {
max-width: 100%; /* 图片最大宽度为div的宽度 */
height: auto; /* 高度自适应 */
} }
</style> </style>