大屏路由配置,基本框架构建
@ -77,6 +77,7 @@
|
||||
"fast-glob": "3.3.2",
|
||||
"globals": "15.12.0",
|
||||
"postcss": "8.4.36",
|
||||
"postcss-px-to-viewport": "^1.1.1",
|
||||
"prettier": "3.2.5",
|
||||
"sass": "1.72.0",
|
||||
"typescript": "5.7.2",
|
||||
|
BIN
src/assets/images/Attendancerate.png
Normal file
After Width: | Height: | Size: 10 KiB |
BIN
src/assets/images/Group 1000015122.png
Normal file
After Width: | Height: | Size: 6.2 KiB |
BIN
src/assets/images/Segmentation.png
Normal file
After Width: | Height: | Size: 3.1 KiB |
BIN
src/assets/images/Vector.png
Normal file
After Width: | Height: | Size: 663 B |
BIN
src/assets/images/Weather.png
Normal file
After Width: | Height: | Size: 9.2 KiB |
BIN
src/assets/images/attendanceperson.png
Normal file
After Width: | Height: | Size: 9.3 KiB |
BIN
src/assets/images/bottomright.png
Normal file
After Width: | Height: | Size: 135 B |
BIN
src/assets/images/day.png
Normal file
After Width: | Height: | Size: 5.0 KiB |
BIN
src/assets/images/days.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
src/assets/images/header.png
Normal file
After Width: | Height: | Size: 98 KiB |
BIN
src/assets/images/image.png.png
Normal file
After Width: | Height: | Size: 1.5 KiB |
BIN
src/assets/images/image.png(1).png
Normal file
After Width: | Height: | Size: 38 KiB |
BIN
src/assets/images/jigong.png
Normal file
After Width: | Height: | Size: 793 B |
BIN
src/assets/images/ligner.png
Normal file
After Width: | Height: | Size: 162 B |
BIN
src/assets/images/machinery.png
Normal file
After Width: | Height: | Size: 867 B |
BIN
src/assets/images/projectLogo.png
Normal file
After Width: | Height: | Size: 4.5 KiB |
BIN
src/assets/images/projectday.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
src/assets/images/robot-line.png
Normal file
After Width: | Height: | Size: 736 B |
BIN
src/assets/images/topleft.png
Normal file
After Width: | Height: | Size: 144 B |
BIN
src/assets/images/totalnumber.png
Normal file
After Width: | Height: | Size: 7.0 KiB |
BIN
src/assets/images/usercopy.png
Normal file
After Width: | Height: | Size: 674 B |
BIN
src/assets/images/分组 1.png
Normal file
After Width: | Height: | Size: 92 KiB |
BIN
src/assets/images/分组 2.png
Normal file
After Width: | Height: | Size: 98 KiB |
BIN
src/assets/images/分组 25.png
Normal file
After Width: | Height: | Size: 6.1 KiB |
BIN
src/assets/images/分组 28.png
Normal file
After Width: | Height: | Size: 408 B |
BIN
src/assets/images/分组 41.png
Normal file
After Width: | Height: | Size: 7.6 KiB |
BIN
src/assets/images/分组 50.png
Normal file
After Width: | Height: | Size: 7.2 KiB |
BIN
src/assets/images/分组 55.png
Normal file
After Width: | Height: | Size: 78 KiB |
BIN
src/assets/images/分组 86.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
src/assets/images/向左.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
src/assets/images/向左(1).png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
src/assets/images/安全管理.png
Normal file
After Width: | Height: | Size: 738 B |
BIN
src/assets/images/新闻_o.png
Normal file
After Width: | Height: | Size: 390 B |
BIN
src/assets/images/时间.png
Normal file
After Width: | Height: | Size: 663 B |
BIN
src/assets/images/画板 11.png
Normal file
After Width: | Height: | Size: 5.5 KiB |
BIN
src/assets/images/画板 12.png
Normal file
After Width: | Height: | Size: 5.6 KiB |
BIN
src/assets/images/画板 13.png
Normal file
After Width: | Height: | Size: 6.4 KiB |
BIN
src/assets/images/画板 14.png
Normal file
After Width: | Height: | Size: 21 KiB |
BIN
src/assets/images/画板 7.png
Normal file
After Width: | Height: | Size: 7.2 KiB |
BIN
src/assets/images/设置.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
src/assets/images/质量管理新.png
Normal file
After Width: | Height: | Size: 841 B |
BIN
src/assets/images/采购订单.png
Normal file
After Width: | Height: | Size: 725 B |
@ -93,6 +93,11 @@ export const constantRoutes: RouteRecordRaw[] = [
|
||||
path: '/test',
|
||||
component: () => import('@/views/materials/materials/index.vue'),
|
||||
hidden: true
|
||||
},
|
||||
{
|
||||
path: '/gisHome',
|
||||
component: () => import('@/views/gisHome/index.vue'),
|
||||
hidden: true
|
||||
}
|
||||
];
|
||||
|
||||
|
13
src/views/gisHome/css/gis.scss
Normal file
@ -0,0 +1,13 @@
|
||||
$vm_base: 1920;
|
||||
$vh_base: 1080;
|
||||
// 计算vw
|
||||
@function vw($px) {
|
||||
@return calc(($px / $vm_base) * 100vw);
|
||||
}
|
||||
|
||||
// 计算vh
|
||||
@function vh($px) {
|
||||
@return calc(($px / $vh_base) * 100vh);
|
||||
}
|
||||
|
||||
|
248
src/views/gisHome/index.vue
Normal file
@ -0,0 +1,248 @@
|
||||
<template>
|
||||
<div class="h100vh bg-black w100vw">
|
||||
<div class="header h23.25 flex px-5 items-center justify-between mb-7.5">
|
||||
<div class="productionday h12 flex items-center">
|
||||
<img src="@/assets/images/projectLogo.png" alt="" />
|
||||
<img src="@/assets/images/projectday.png" alt="" />
|
||||
<img src="@/assets/images/day.png" alt="" />
|
||||
<img src="@/assets/images/days.png" alt="" />
|
||||
</div>
|
||||
<div class="calendar flex items-center pt-3.5">
|
||||
<div class="Weather text-white flex items-center mr-7.5">
|
||||
<img src="@/assets/images/Weather.png" alt="" class="w12.5" />
|
||||
<span class="textBlack">多云</span><span class="robotocondensed">9°/18°</span>
|
||||
</div>
|
||||
<div class="weeks">
|
||||
<span class="textBlack">周一(</span> <span class="robotocondensed">2024.3.11 08:35:46</span> <span class="textBlack">)</span>
|
||||
</div>
|
||||
<div class="Segmentation mx-5">
|
||||
<div class="w0.75 h2.5 bg-#43E2CB mb-1"></div>
|
||||
<div class="w0.75 h2.5 bg-#43E2CB"></div>
|
||||
</div>
|
||||
<div class="w28 h5.75"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="content px-5">
|
||||
<div class="situation">
|
||||
<div class="main">
|
||||
<div class="title">
|
||||
<div class="flex items-center">
|
||||
<img src="@/assets/images/ligner.png" alt="" />
|
||||
<div class="w100% flex justify-between items-center">
|
||||
<div class="subTitle flex items-center">
|
||||
<img src="@/assets/images/jigong.png" alt="" />
|
||||
<span>人员情况</span>
|
||||
</div>
|
||||
<div class="hint">PERSONNEL SITUATION</div>
|
||||
</div>
|
||||
<div class="mark"></div>
|
||||
</div>
|
||||
<div class="ligner"></div>
|
||||
</div>
|
||||
<div class="cardList">
|
||||
<div class="card">
|
||||
<div class="iconImg">
|
||||
<img src="@/assets/images/Attendancerate.png" alt="" />
|
||||
</div>
|
||||
<p>总人数</p>
|
||||
<div class="peopleNum"><span>259</span>人</div>
|
||||
</div>
|
||||
<div class="card">
|
||||
<div class="iconImg">
|
||||
<img src="@/assets/images/attendanceperson.png" alt="" />
|
||||
</div>
|
||||
<p>出勤人</p>
|
||||
<div class="peopleNum"><span>259</span>人</div>
|
||||
</div>
|
||||
<div class="card">
|
||||
<div class="iconImg">
|
||||
<img src="@/assets/images/Attendancerate.png" alt="" />
|
||||
</div>
|
||||
<p>出勤率</p>
|
||||
<div class="peopleNum"><span>100</span>%</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="title">
|
||||
<div class="flex items-center">
|
||||
<img src="@/assets/images/ligner.png" alt="" />
|
||||
<div class="flex justify-between w100% items-center">
|
||||
<div class="subTitle flex items-center">
|
||||
<img src="@/assets/images/Machinery.png" alt="" />
|
||||
<span>机械情况</span>
|
||||
</div>
|
||||
<div class="hint">MECHANICAL CONDITION</div>
|
||||
</div>
|
||||
<div class="mark"></div>
|
||||
</div>
|
||||
<div class="ligner"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="topleft"></div>
|
||||
<div class="bottomright"></div>
|
||||
</div>
|
||||
<div class="management"></div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup></script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import './css/gis.scss';
|
||||
|
||||
.header {
|
||||
background-image: url('@/assets/images/header.png');
|
||||
// background-size: 100% 100%;
|
||||
}
|
||||
|
||||
.title {
|
||||
> img {
|
||||
width: 14px;
|
||||
height: 35px;
|
||||
}
|
||||
|
||||
.subTitle {
|
||||
img {
|
||||
width: 18.8px;
|
||||
height: 20px;
|
||||
margin-right: vw(10);
|
||||
}
|
||||
|
||||
span {
|
||||
text-shadow: 0px 0px 8px rgba(2, 3, 7, 0.35);
|
||||
font-size: vw(20);
|
||||
font-weight: 500;
|
||||
letter-spacing: 0px;
|
||||
color: rgba(255, 255, 255, 1);
|
||||
}
|
||||
}
|
||||
|
||||
.hint {
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
color: rgba(204, 204, 204, 0.5);
|
||||
margin-right: vw(20);
|
||||
}
|
||||
|
||||
.mark {
|
||||
width: vw(2);
|
||||
height: vh(14);
|
||||
background: rgba(67, 226, 203);
|
||||
margin-right: vw(10);
|
||||
}
|
||||
|
||||
.ligner {
|
||||
height: 1px;
|
||||
background: linear-gradient(to right, transparent 0%, #43e2cb 90%);
|
||||
margin-left: vw(14);
|
||||
}
|
||||
}
|
||||
|
||||
.robotocondensed {
|
||||
font-weight: 700;
|
||||
letter-spacing: 0px;
|
||||
line-height: 23.17px;
|
||||
color: rgba(230, 247, 255, 1);
|
||||
text-align: right;
|
||||
vertical-align: top;
|
||||
font-family: 'Roboto Condensed';
|
||||
}
|
||||
|
||||
.textBlack {
|
||||
letter-spacing: 0px;
|
||||
line-height: vw(23.17);
|
||||
color: rgba(230, 247, 255, 1);
|
||||
font-family: '思源黑体';
|
||||
}
|
||||
|
||||
.situation {
|
||||
width: vw(449);
|
||||
height: vh(927);
|
||||
background: rgb(1, 26, 33, 0.4);
|
||||
border: 2px solid #000000;
|
||||
position: relative;
|
||||
backdrop-filter: blur(8px);
|
||||
|
||||
.main {
|
||||
padding-top: vh(30);
|
||||
|
||||
.cardList {
|
||||
padding: 0 vw(20);
|
||||
margin-top: vh(20);
|
||||
margin-bottom: vh(30);
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
|
||||
.card {
|
||||
border: 1px dashed rgba(67, 226, 203, 0.3);
|
||||
width: vw(112);
|
||||
height: vh(155);
|
||||
padding-top: vh(15);
|
||||
text-align: center;
|
||||
color: rgba(255, 255, 255, 1);
|
||||
|
||||
img {
|
||||
width: vw(44);
|
||||
height: vh(44);
|
||||
margin-bottom: vh(20);
|
||||
}
|
||||
|
||||
> p {
|
||||
font-size: vw(14);
|
||||
margin-top: 0;
|
||||
margin-bottom: vw(10);
|
||||
font-family: '思源黑体';
|
||||
}
|
||||
|
||||
.peopleNum {
|
||||
font-weight: 400;
|
||||
font-size: vw(14);
|
||||
|
||||
text-shadow: 0px 1.24px 6.21px rgba(0, 190, 247, 1);
|
||||
color: rgba(230, 247, 255, 1);
|
||||
|
||||
span {
|
||||
font-size: vw(24);
|
||||
font-weight: 700;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
padding: 2px;
|
||||
background: linear-gradient(to bottom right, #43e2cb 0%, transparent 50%);
|
||||
-webkit-mask:
|
||||
linear-gradient(#fff 0 0) content-box,
|
||||
linear-gradient(#fff 0 0);
|
||||
mask-composite: exclude;
|
||||
opacity: 0.4;
|
||||
z-index: -1;
|
||||
}
|
||||
|
||||
.topleft {
|
||||
width: 7px;
|
||||
height: 7px;
|
||||
position: absolute;
|
||||
top: 1px;
|
||||
left: 1px;
|
||||
background-image: url('@/assets/images/topleft.png');
|
||||
}
|
||||
|
||||
.bottomright {
|
||||
width: 7px;
|
||||
height: 7px;
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
background-image: url('@/assets/images/bottomright.png');
|
||||
}
|
||||
}
|
||||
</style>
|