From 3b9b33c2b5ab555696e1012ed1e35446c8052786 Mon Sep 17 00:00:00 2001
From: 马宇豪 <978517621@qq.com>
Date: 星期一, 14 八月 2023 14:13:09 +0800
Subject: [PATCH] 更新大屏
---
src/assets/loginPage/panel-bg.png | 0
shim.d.ts | 1
src/assets/warningScreen/body-bg.png | 0
src/assets/warningScreen/data-2.png | 0
src/views/bigScreen/components/screen.vue | 1049 +++++++++++++++++++++++++++++++++++++++++++++++++
src/assets/warningScreen/scroll-bg.png | 0
src/assets/warningScreen/chart-bg.png | 0
src/assets/warningScreen/chart-bg4.png | 0
vite.config.ts | 22
src/views/loginPage/loginPage.vue | 34 +
src/router/route.ts | 16
src/assets/warningScreen/data-1.png | 0
src/assets/loginPage/rollingBall.gif | 0
src/views/loginPage/component/accountLogin.vue | 21
src/assets/warningScreen/data-6.png | 0
src/views/bigScreen/fullScreen/index.vue | 46 ++
src/layout/navBars/breadcrumb/user.vue | 27 -
src/assets/warningScreen/data-4.png | 0
src/assets/warningScreen/chart-bg3.png | 0
src/assets/loginPage/panel-bg2.png | 0
src/assets/warningScreen/data-5.png | 0
/dev/null | 0
src/assets/warningScreen/data-3.png | 0
src/assets/menu/company.png | 0
src/assets/loginPage/starFalls.gif | 0
src/assets/warningScreen/chart-bg2.png | 0
src/views/bigScreen/index.vue | 35 +
package.json | 5
src/assets/warningScreen/data.gif | 0
src/App.vue | 1
30 files changed, 1,200 insertions(+), 57 deletions(-)
diff --git a/package.json b/package.json
index 8b2ab23..90518f1 100644
--- a/package.json
+++ b/package.json
@@ -10,8 +10,9 @@
"lint-fix": "eslint --fix --ext .js --ext .jsx --ext .vue src/"
},
"dependencies": {
+ "@amap/amap-jsapi-loader": "^1.0.1",
"@element-plus/icons-vue": "^2.0.6",
- "@kjgl77/datav-vue3": "^1.2.1",
+ "@kjgl77/datav-vue3": "^1.6.1",
"@wangeditor/editor": "^5.1.14",
"axios": "^0.27.2",
"countup.js": "^2.2.0",
@@ -50,9 +51,11 @@
"@typescript-eslint/parser": "^5.27.0",
"@vitejs/plugin-vue": "^2.3.3",
"@vue/compiler-sfc": "^3.2.36",
+ "amfe-flexible": "^2.2.1",
"dotenv": "^16.0.1",
"eslint": "^8.17.0",
"eslint-plugin-vue": "^9.1.0",
+ "postcss-pxtorem": "^6.0.0",
"prettier": "^2.6.2",
"sass": "^1.52.2",
"sass-loader": "^13.0.0",
diff --git a/shim.d.ts b/shim.d.ts
index 3e9bfd0..4de2a4a 100644
--- a/shim.d.ts
+++ b/shim.d.ts
@@ -11,3 +11,4 @@
interface Window {
nextLoading: boolean;
}
+declare module 'postcss-pxtorem'
\ No newline at end of file
diff --git a/src/App.vue b/src/App.vue
index 8d21990..af8afc1 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -89,6 +89,7 @@
// if(!Session.get('token')) return
// initBackEndControlRoutes()
});
+
// 页面销毁时,关闭监听布局配置/i18n监听
onUnmounted(() => {
proxy.mittBus.off('openSetingsDrawer', () => {});
diff --git a/src/assets/companyLogo.png b/src/assets/companyLogo.png
deleted file mode 100644
index 0f9f2d1..0000000
--- a/src/assets/companyLogo.png
+++ /dev/null
Binary files differ
diff --git a/src/assets/loginPage/panel-bg.png b/src/assets/loginPage/panel-bg.png
index bb1518f..423b2c4 100644
--- a/src/assets/loginPage/panel-bg.png
+++ b/src/assets/loginPage/panel-bg.png
Binary files differ
diff --git a/src/assets/loginPage/panel-bg2.png b/src/assets/loginPage/panel-bg2.png
new file mode 100644
index 0000000..354548a
--- /dev/null
+++ b/src/assets/loginPage/panel-bg2.png
Binary files differ
diff --git a/src/assets/loginPage/rollingBall.gif b/src/assets/loginPage/rollingBall.gif
new file mode 100644
index 0000000..855711d
--- /dev/null
+++ b/src/assets/loginPage/rollingBall.gif
Binary files differ
diff --git a/src/assets/loginPage/starFalls.gif b/src/assets/loginPage/starFalls.gif
new file mode 100644
index 0000000..4dbddff
--- /dev/null
+++ b/src/assets/loginPage/starFalls.gif
Binary files differ
diff --git a/src/assets/menu/bg_home.jpg b/src/assets/menu/bg_home.jpg
deleted file mode 100644
index c8b3afd..0000000
--- a/src/assets/menu/bg_home.jpg
+++ /dev/null
Binary files differ
diff --git a/src/assets/menu/bg_home1.jpg b/src/assets/menu/bg_home1.jpg
deleted file mode 100644
index b4389fb..0000000
--- a/src/assets/menu/bg_home1.jpg
+++ /dev/null
Binary files differ
diff --git a/src/assets/menu/card1.png b/src/assets/menu/card1.png
deleted file mode 100644
index d70d653..0000000
--- a/src/assets/menu/card1.png
+++ /dev/null
Binary files differ
diff --git a/src/assets/menu/card10.png b/src/assets/menu/card10.png
deleted file mode 100644
index cb8129f..0000000
--- a/src/assets/menu/card10.png
+++ /dev/null
Binary files differ
diff --git a/src/assets/menu/card11.png b/src/assets/menu/card11.png
deleted file mode 100644
index 2155f53..0000000
--- a/src/assets/menu/card11.png
+++ /dev/null
Binary files differ
diff --git a/src/assets/menu/card2.png b/src/assets/menu/card2.png
deleted file mode 100644
index 9415cb6..0000000
--- a/src/assets/menu/card2.png
+++ /dev/null
Binary files differ
diff --git a/src/assets/menu/card3.png b/src/assets/menu/card3.png
deleted file mode 100644
index b22eae4..0000000
--- a/src/assets/menu/card3.png
+++ /dev/null
Binary files differ
diff --git a/src/assets/menu/card4.png b/src/assets/menu/card4.png
deleted file mode 100644
index d29a9f4..0000000
--- a/src/assets/menu/card4.png
+++ /dev/null
Binary files differ
diff --git a/src/assets/menu/card5.png b/src/assets/menu/card5.png
deleted file mode 100644
index ee12eb6..0000000
--- a/src/assets/menu/card5.png
+++ /dev/null
Binary files differ
diff --git a/src/assets/menu/card6.png b/src/assets/menu/card6.png
deleted file mode 100644
index cc7d602..0000000
--- a/src/assets/menu/card6.png
+++ /dev/null
Binary files differ
diff --git a/src/assets/menu/card7.png b/src/assets/menu/card7.png
deleted file mode 100644
index d5bf656..0000000
--- a/src/assets/menu/card7.png
+++ /dev/null
Binary files differ
diff --git a/src/assets/menu/card8.png b/src/assets/menu/card8.png
deleted file mode 100644
index a839c27..0000000
--- a/src/assets/menu/card8.png
+++ /dev/null
Binary files differ
diff --git a/src/assets/menu/card9.png b/src/assets/menu/card9.png
deleted file mode 100644
index 7481ef0..0000000
--- a/src/assets/menu/card9.png
+++ /dev/null
Binary files differ
diff --git a/src/assets/menu/company.png b/src/assets/menu/company.png
index b8f34a2..21a92f4 100644
--- a/src/assets/menu/company.png
+++ b/src/assets/menu/company.png
Binary files differ
diff --git a/src/assets/menu/companyLogo.png b/src/assets/menu/companyLogo.png
deleted file mode 100644
index 46b0568..0000000
--- a/src/assets/menu/companyLogo.png
+++ /dev/null
Binary files differ
diff --git a/src/assets/menu/icon1.png b/src/assets/menu/icon1.png
deleted file mode 100644
index bef5341..0000000
--- a/src/assets/menu/icon1.png
+++ /dev/null
Binary files differ
diff --git a/src/assets/menu/icon10.png b/src/assets/menu/icon10.png
deleted file mode 100644
index 0f1d961..0000000
--- a/src/assets/menu/icon10.png
+++ /dev/null
Binary files differ
diff --git a/src/assets/menu/icon11.png b/src/assets/menu/icon11.png
deleted file mode 100644
index 392b926..0000000
--- a/src/assets/menu/icon11.png
+++ /dev/null
Binary files differ
diff --git a/src/assets/menu/icon2.png b/src/assets/menu/icon2.png
deleted file mode 100644
index 5ca9d63..0000000
--- a/src/assets/menu/icon2.png
+++ /dev/null
Binary files differ
diff --git a/src/assets/menu/icon3.png b/src/assets/menu/icon3.png
deleted file mode 100644
index c512b58..0000000
--- a/src/assets/menu/icon3.png
+++ /dev/null
Binary files differ
diff --git a/src/assets/menu/icon4.png b/src/assets/menu/icon4.png
deleted file mode 100644
index 1088209..0000000
--- a/src/assets/menu/icon4.png
+++ /dev/null
Binary files differ
diff --git a/src/assets/menu/icon5.png b/src/assets/menu/icon5.png
deleted file mode 100644
index 28200e7..0000000
--- a/src/assets/menu/icon5.png
+++ /dev/null
Binary files differ
diff --git a/src/assets/menu/icon6.png b/src/assets/menu/icon6.png
deleted file mode 100644
index c58c489..0000000
--- a/src/assets/menu/icon6.png
+++ /dev/null
Binary files differ
diff --git a/src/assets/menu/icon7.png b/src/assets/menu/icon7.png
deleted file mode 100644
index 838cb9a..0000000
--- a/src/assets/menu/icon7.png
+++ /dev/null
Binary files differ
diff --git a/src/assets/menu/icon8.png b/src/assets/menu/icon8.png
deleted file mode 100644
index 0e7d42f..0000000
--- a/src/assets/menu/icon8.png
+++ /dev/null
Binary files differ
diff --git a/src/assets/menu/icon9.png b/src/assets/menu/icon9.png
deleted file mode 100644
index ce58f60..0000000
--- a/src/assets/menu/icon9.png
+++ /dev/null
Binary files differ
diff --git a/src/assets/newMenu/card-1.png b/src/assets/newMenu/card-1.png
deleted file mode 100644
index eb8fa9b..0000000
--- a/src/assets/newMenu/card-1.png
+++ /dev/null
Binary files differ
diff --git a/src/assets/newMenu/card-10.png b/src/assets/newMenu/card-10.png
deleted file mode 100644
index e80c260..0000000
--- a/src/assets/newMenu/card-10.png
+++ /dev/null
Binary files differ
diff --git a/src/assets/newMenu/card-11.png b/src/assets/newMenu/card-11.png
deleted file mode 100644
index 7ae2a5e..0000000
--- a/src/assets/newMenu/card-11.png
+++ /dev/null
Binary files differ
diff --git a/src/assets/newMenu/card-2.png b/src/assets/newMenu/card-2.png
deleted file mode 100644
index 7261d75..0000000
--- a/src/assets/newMenu/card-2.png
+++ /dev/null
Binary files differ
diff --git a/src/assets/newMenu/card-3.png b/src/assets/newMenu/card-3.png
deleted file mode 100644
index 6ea4da0..0000000
--- a/src/assets/newMenu/card-3.png
+++ /dev/null
Binary files differ
diff --git a/src/assets/newMenu/card-4.png b/src/assets/newMenu/card-4.png
deleted file mode 100644
index bf5f61b..0000000
--- a/src/assets/newMenu/card-4.png
+++ /dev/null
Binary files differ
diff --git a/src/assets/newMenu/card-5.png b/src/assets/newMenu/card-5.png
deleted file mode 100644
index adde896..0000000
--- a/src/assets/newMenu/card-5.png
+++ /dev/null
Binary files differ
diff --git a/src/assets/newMenu/card-6.png b/src/assets/newMenu/card-6.png
deleted file mode 100644
index 83a90cc..0000000
--- a/src/assets/newMenu/card-6.png
+++ /dev/null
Binary files differ
diff --git a/src/assets/newMenu/card-7.png b/src/assets/newMenu/card-7.png
deleted file mode 100644
index 676e989..0000000
--- a/src/assets/newMenu/card-7.png
+++ /dev/null
Binary files differ
diff --git a/src/assets/newMenu/card-8.png b/src/assets/newMenu/card-8.png
deleted file mode 100644
index 95e0528..0000000
--- a/src/assets/newMenu/card-8.png
+++ /dev/null
Binary files differ
diff --git a/src/assets/newMenu/card-9.png b/src/assets/newMenu/card-9.png
deleted file mode 100644
index c8024f0..0000000
--- a/src/assets/newMenu/card-9.png
+++ /dev/null
Binary files differ
diff --git a/src/assets/newMenu/icon1.png b/src/assets/newMenu/icon1.png
deleted file mode 100644
index 99f305d..0000000
--- a/src/assets/newMenu/icon1.png
+++ /dev/null
Binary files differ
diff --git a/src/assets/newMenu/icon10.png b/src/assets/newMenu/icon10.png
deleted file mode 100644
index f7ae382..0000000
--- a/src/assets/newMenu/icon10.png
+++ /dev/null
Binary files differ
diff --git a/src/assets/newMenu/icon11.png b/src/assets/newMenu/icon11.png
deleted file mode 100644
index a19d8da..0000000
--- a/src/assets/newMenu/icon11.png
+++ /dev/null
Binary files differ
diff --git a/src/assets/newMenu/icon2.png b/src/assets/newMenu/icon2.png
deleted file mode 100644
index 1b2dae3..0000000
--- a/src/assets/newMenu/icon2.png
+++ /dev/null
Binary files differ
diff --git a/src/assets/newMenu/icon3.png b/src/assets/newMenu/icon3.png
deleted file mode 100644
index 9097055..0000000
--- a/src/assets/newMenu/icon3.png
+++ /dev/null
Binary files differ
diff --git a/src/assets/newMenu/icon4.png b/src/assets/newMenu/icon4.png
deleted file mode 100644
index 23ad0da..0000000
--- a/src/assets/newMenu/icon4.png
+++ /dev/null
Binary files differ
diff --git a/src/assets/newMenu/icon5.png b/src/assets/newMenu/icon5.png
deleted file mode 100644
index 71c54e5..0000000
--- a/src/assets/newMenu/icon5.png
+++ /dev/null
Binary files differ
diff --git a/src/assets/newMenu/icon6.png b/src/assets/newMenu/icon6.png
deleted file mode 100644
index cbad202..0000000
--- a/src/assets/newMenu/icon6.png
+++ /dev/null
Binary files differ
diff --git a/src/assets/newMenu/icon7.png b/src/assets/newMenu/icon7.png
deleted file mode 100644
index 34e62ed..0000000
--- a/src/assets/newMenu/icon7.png
+++ /dev/null
Binary files differ
diff --git a/src/assets/newMenu/icon8.png b/src/assets/newMenu/icon8.png
deleted file mode 100644
index 9c8d052..0000000
--- a/src/assets/newMenu/icon8.png
+++ /dev/null
Binary files differ
diff --git a/src/assets/newMenu/icon9.png b/src/assets/newMenu/icon9.png
deleted file mode 100644
index cb1199e..0000000
--- a/src/assets/newMenu/icon9.png
+++ /dev/null
Binary files differ
diff --git a/src/assets/newMenu/leftbg.jpg b/src/assets/newMenu/leftbg.jpg
deleted file mode 100644
index cdfc4f8..0000000
--- a/src/assets/newMenu/leftbg.jpg
+++ /dev/null
Binary files differ
diff --git a/src/assets/newMenu/leftbg.png b/src/assets/newMenu/leftbg.png
deleted file mode 100644
index 61eab20..0000000
--- a/src/assets/newMenu/leftbg.png
+++ /dev/null
Binary files differ
diff --git a/src/assets/newMenu/pic_line1.png b/src/assets/newMenu/pic_line1.png
deleted file mode 100644
index 4212982..0000000
--- a/src/assets/newMenu/pic_line1.png
+++ /dev/null
Binary files differ
diff --git a/src/assets/newMenu/pic_line2.png b/src/assets/newMenu/pic_line2.png
deleted file mode 100644
index b6a65a5..0000000
--- a/src/assets/newMenu/pic_line2.png
+++ /dev/null
Binary files differ
diff --git a/src/assets/newMenu/topbg.jpg b/src/assets/newMenu/topbg.jpg
deleted file mode 100644
index 3d2dd9c..0000000
--- a/src/assets/newMenu/topbg.jpg
+++ /dev/null
Binary files differ
diff --git a/src/assets/newMenu/toplogo.png b/src/assets/newMenu/toplogo.png
deleted file mode 100644
index 8f50c3d..0000000
--- a/src/assets/newMenu/toplogo.png
+++ /dev/null
Binary files differ
diff --git a/src/assets/warningScreen/body-bg.png b/src/assets/warningScreen/body-bg.png
new file mode 100644
index 0000000..fa6662b
--- /dev/null
+++ b/src/assets/warningScreen/body-bg.png
Binary files differ
diff --git a/src/assets/warningScreen/chart-bg.png b/src/assets/warningScreen/chart-bg.png
new file mode 100644
index 0000000..402e26d
--- /dev/null
+++ b/src/assets/warningScreen/chart-bg.png
Binary files differ
diff --git a/src/assets/warningScreen/chart-bg2.png b/src/assets/warningScreen/chart-bg2.png
new file mode 100644
index 0000000..1e075c7
--- /dev/null
+++ b/src/assets/warningScreen/chart-bg2.png
Binary files differ
diff --git a/src/assets/warningScreen/chart-bg3.png b/src/assets/warningScreen/chart-bg3.png
new file mode 100644
index 0000000..1e688b8
--- /dev/null
+++ b/src/assets/warningScreen/chart-bg3.png
Binary files differ
diff --git a/src/assets/warningScreen/chart-bg4.png b/src/assets/warningScreen/chart-bg4.png
new file mode 100644
index 0000000..20e122d
--- /dev/null
+++ b/src/assets/warningScreen/chart-bg4.png
Binary files differ
diff --git a/src/assets/warningScreen/data-1.png b/src/assets/warningScreen/data-1.png
new file mode 100644
index 0000000..9c278fb
--- /dev/null
+++ b/src/assets/warningScreen/data-1.png
Binary files differ
diff --git a/src/assets/warningScreen/data-2.png b/src/assets/warningScreen/data-2.png
new file mode 100644
index 0000000..62228e4
--- /dev/null
+++ b/src/assets/warningScreen/data-2.png
Binary files differ
diff --git a/src/assets/warningScreen/data-3.png b/src/assets/warningScreen/data-3.png
new file mode 100644
index 0000000..4512d7f
--- /dev/null
+++ b/src/assets/warningScreen/data-3.png
Binary files differ
diff --git a/src/assets/warningScreen/data-4.png b/src/assets/warningScreen/data-4.png
new file mode 100644
index 0000000..cd36d80
--- /dev/null
+++ b/src/assets/warningScreen/data-4.png
Binary files differ
diff --git a/src/assets/warningScreen/data-5.png b/src/assets/warningScreen/data-5.png
new file mode 100644
index 0000000..7615ce8
--- /dev/null
+++ b/src/assets/warningScreen/data-5.png
Binary files differ
diff --git a/src/assets/warningScreen/data-6.png b/src/assets/warningScreen/data-6.png
new file mode 100644
index 0000000..3cf6148
--- /dev/null
+++ b/src/assets/warningScreen/data-6.png
Binary files differ
diff --git a/src/assets/warningScreen/data.gif b/src/assets/warningScreen/data.gif
new file mode 100644
index 0000000..7c0cc58
--- /dev/null
+++ b/src/assets/warningScreen/data.gif
Binary files differ
diff --git a/src/assets/warningScreen/logo_dark.png b/src/assets/warningScreen/logo_dark.png
deleted file mode 100644
index 96a4d41..0000000
--- a/src/assets/warningScreen/logo_dark.png
+++ /dev/null
Binary files differ
diff --git a/src/assets/warningScreen/scroll-bg.png b/src/assets/warningScreen/scroll-bg.png
new file mode 100644
index 0000000..ee1507b
--- /dev/null
+++ b/src/assets/warningScreen/scroll-bg.png
Binary files differ
diff --git a/src/layout/navBars/breadcrumb/user.vue b/src/layout/navBars/breadcrumb/user.vue
index 9f7f963..485e95f 100644
--- a/src/layout/navBars/breadcrumb/user.vue
+++ b/src/layout/navBars/breadcrumb/user.vue
@@ -1,9 +1,7 @@
<template>
<div class="layout-navbars-breadcrumb-user pr15" :style="{ flex: layoutUserFlexNum }">
<div class="logo">
-<!-- <img @click="toHome" src="../../../assets/menu/company.png" />-->
<img src="../../../assets/menu/company.png" />
-<!-- <span>{{ systemName }}</span>-->
</div>
<div style="display: flex; align-items: center; padding-right: 5px">
<!-- <div @click="backToMenu()" class="backBtn">返回首页</div>-->
@@ -120,8 +118,7 @@
const state = reactive({
isScreenfull: false,
disabledI18n: 'zh-cn',
- disabledSize: 'large',
- systemName: ''
+ disabledSize: 'large'
});
// 设置分割样式
const layoutUserFlexNum = computed(() => {
@@ -251,23 +248,6 @@
break;
}
};
-
- const getSysName = async () => {
- if (window.nextLoading === undefined) NextLoading.start();
- if (!Cookies.get('token')) return false;
- const res = await menuApi.getMenuAdmin(Cookies.get('projectId') === null ? '' : Cookies.get('projectId'));
- if (res.data.code === '200') {
- state.systemName = res.data.data[1].project.projectName;
- } else {
- console.log('有问题');
- }
- };
- // const backToMenu = () => {
- // router.push({ path: 'newMenu' }).then(()=>{
- // routeList.routesList.value = []
- // console.log(routeList);
- // });
- // };
const toHome = () => {
router.push({ path: 'newMenu' });
};
@@ -277,7 +257,6 @@
initI18n();
initComponentSize();
}
- getSysName();
});
return {
userInfos,
@@ -379,8 +358,8 @@
justify-content: space-between;
.logo {
- height: 75%;
- padding: 5px 10px;
+ width: 531px;
+ height: 60px;
display: flex;
align-items: center;
overflow: hidden;
diff --git a/src/router/route.ts b/src/router/route.ts
index af6515f..c9d3e74 100644
--- a/src/router/route.ts
+++ b/src/router/route.ts
@@ -70,5 +70,21 @@
meta: {
title: '登录'
}
+ },
+ {
+ path: '/fullScreen',
+ name: 'fullScreen',
+ component: () => import('/@/views/bigScreen/fullScreen/index.vue'),
+ meta: {
+ title: '全屏'
+ }
+ },
+ {
+ path: '/bigScreen',
+ name: 'bigScreen',
+ component: () => import('/@/views/bigScreen/index.vue'),
+ meta: {
+ title: '全屏'
+ }
}
];
diff --git a/src/views/bigScreen/components/screen.vue b/src/views/bigScreen/components/screen.vue
new file mode 100644
index 0000000..71c340e
--- /dev/null
+++ b/src/views/bigScreen/components/screen.vue
@@ -0,0 +1,1049 @@
+<template>
+ <div class="charts-container">
+ <div class="header-content">
+ <div class="title-left">
+<!-- <img src="../../../assets/warningScreen/logo_dark.png" alt="" />-->
+ <div class="datetime">
+ <div class="timel">{{time}}</div>
+ <div class="timer">
+ <div>{{date}}</div>
+ <div>{{weekDay}}</div>
+ </div>
+ </div>
+ </div>
+ <div class="title"><span>广域特殊气体泄漏在线监测预警系统</span></div>
+ <div class="title-right">
+ <div class="btns">
+ <div class="fullBtn" v-if="!isFull" @click="toFull()">
+ <el-icon><FullScreen /></el-icon>
+ <div>全屏</div>
+ </div>
+ <div class="backBtn" @click="back()" v-else>
+ <el-icon><SwitchButton /></el-icon>
+ <div>退出</div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="main-content">
+ <div id="bigMap"></div>
+ <div class="main-left">
+ <div class="left-top withFilter">
+ <div class="chart-head">
+ <div class="chart-tit">预警汇总</div>
+ <el-radio-group v-model="chart1Search">
+ <el-radio :label="1" size="small" border>当日</el-radio>
+ <el-radio :label="2" size="small" border>近7天</el-radio>
+ <el-radio :label="3" size="small" border>近30天</el-radio>
+ <el-radio :label="4" size="small" border>当年</el-radio>
+ </el-radio-group>
+ </div>
+ <div class="chart-cont">
+ <div class="orange">
+ <div><span>30</span><span>橙色预警</span></div>
+ </div>
+ <div class="red">
+ <div><span>10</span><span>红色预警</span></div>
+ </div>
+ </div>
+ </div>
+ <div class="left-mid withFilter">
+ <div class="chart-head">
+ <div class="chart-tit">预警信息</div>
+ <el-date-picker
+ v-model="chart2Search"
+ size="small"
+ :teleported="false"
+ type="daterange"
+ unlink-panels
+ range-separator="至"
+ start-placeholder="开始日期"
+ end-placeholder="结束日期"
+ format="YYYY-MM-DD" value-format="YYYY-MM-DD HH:mm:ss"
+ />
+ </div>
+ <div class="chart-cont">
+ <dv-scroll-board :config="config" class="scroll-table" @mouseover="mouseoverHandler" @click="clickHandler" />
+ </div>
+ </div>
+ <div class="left-bottom withFilter">
+ <div class="chart-head">
+ <div class="chart-tit">设备状态</div>
+ <div class="sys-status">
+ <Cpu style="width: 1.2em; height: 1.2em; color: #fff" />
+ <div>系统状态:<span>正常</span></div>
+ </div>
+ </div>
+ <div class="chart-cont">
+ <div class="online">
+ <dv-decoration-9 :color="['#22aaff','rgba(34,170,255,.6)']">
+ <div color-green font-600 class="isOnline" bg="~ dark/0">
+ 0
+ </div>
+ </dv-decoration-9>
+ <div>在线</div>
+ </div>
+ <div class="online">
+ <dv-decoration-9 :color="['#ee594a','rgba(238,89,74,.6)']">
+ <div color-red font-600 class="isOnline red-font" bg="~ dark/0">
+ 1
+ </div>
+ </dv-decoration-9>
+ <div style="color:#ee594a;">离线</div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="main-middle">
+ <div class="mid-bottom">
+ <div class="chart-head">
+ <div class="chart-tit">气象信息</div>
+ </div>
+ <div class="chart-cont bigData">
+ <div class="bigPic">
+ <div></div>
+ <div></div>
+ <div></div>
+ <div></div>
+ <div></div>
+ <div></div>
+ </div>
+ <dv-scroll-board :config="bigConfig" class="scroll-table" @mouseover="mouseoverHandler" @click="clickHandler" />
+ </div>
+ </div>
+ </div>
+ <div class="main-right">
+ <div class="right-top withFilterLong">
+ <div class="chart-head">
+ <div class="chart-tit long-tit">气体浓度监测</div>
+ <el-select v-model="gasSearch" :teleported="false" class="m-2" placeholder="Select" size="small">
+ <el-option
+ v-for="item in gasOptions"
+ :key="item.value"
+ :label="item.label"
+ :value="item.value"
+ />
+ </el-select>
+ </div>
+ <div class="chart-cont">
+ <div class="echart" :id="gasN"></div>
+ </div>
+ </div>
+ <div class="right-mid withFilterLong">
+ <div class="chart-head">
+ <div class="chart-tit long-tit">气体通量监测</div>
+ <div class="searchGroup">
+ <el-select v-model="searchParams.gasSearch" :teleported="false" class="m-2" placeholder="Select" size="small">
+ <el-option
+ v-for="item in gasOptions"
+ :key="item.value"
+ :label="item.label"
+ :value="item.value"
+ />
+ </el-select>
+ <el-select v-model="searchParams.areaSearch" :teleported="false" class="m-2" placeholder="Select" size="small">
+ <el-option
+ v-for="item in areaOptions"
+ :key="item.value"
+ :label="item.label"
+ :value="item.value"
+ />
+ </el-select>
+ </div>
+ </div>
+ <div class="chart-cont">
+ <div class="echart" :id="gasT"></div>
+ </div>
+ </div>
+ <div class="right-bottom withoutFilter">
+ <div class="chart-head">
+ <div class="chart-tit long-tit">实时数据量</div>
+ </div>
+ <div class="chart-cont">
+ <div class="online">
+ <div class="totalNum"><span>1048</span>条</div>
+ <div class="dataPic"></div>
+ <div class="totalNum">浓度条数</div>
+ </div>
+ <div class="online">
+ <div class="totalNum"><span>566</span>条</div>
+ <div class="dataPic"></div>
+ <div class="totalNum">通量条数</div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+</template>
+
+<script lang="ts">
+import {toRefs, reactive, onMounted, ref, defineComponent, onUnmounted} from 'vue';
+import { ElMessage, ElMessageBox } from 'element-plus';
+import { useRouter} from "vue-router";
+import * as echarts from "echarts";
+import "amfe-flexible";
+import AMapLoader from '@amap/amap-jsapi-loader'
+import { shallowRef } from '@vue/reactivity'
+// 定义接口来定义对象的类型
+interface TableDataState {
+ time: string
+ date: string
+ weekDay: string
+ dayTime:string
+ isFull: boolean
+ chart1Search: number | null
+ chart2Search: Array<string>
+ gasSearch: number | null
+ gasOptions: Array<gasType>
+ searchParams: Object
+ areaOptions: Array<gasType>
+}
+
+interface gasType {
+ label: string
+ value: number | null
+}
+
+export default defineComponent({
+ name: 'bigScreen',
+ components: { },
+ props:{
+ isFull: Boolean
+ },
+ setup(props,context) {
+ const state = reactive<TableDataState>({
+ time: '',
+ date: '',
+ weekDay: '',
+ dayTime: '',
+ isFull: props.isFull,
+ chart1Search: 1,
+ chart2Search: [],
+ gasSearch: 1,
+ gasOptions: [
+ {
+ label: '气体一',
+ value: 1
+ },
+ {
+ label: '气体二',
+ value: 2
+ },
+ {
+ label: '气体三',
+ value: 3
+ }
+ ],
+ searchParams:{
+ gasSearch: 1,
+ areaSearch: 1
+ },
+ areaOptions: [
+ {
+ label: '区域一',
+ value: 1
+ },
+ {
+ label: '区域二',
+ value: 2
+ },
+ {
+ label: '区域三',
+ value: 3
+ }
+ ]
+ });
+ const router = useRouter();
+ const gasN = ref("eChartgasN" + Date.now() + Math.random())
+ const gasT = ref("eChartgasT" + Date.now() + Math.random())
+ const timeForm = {
+ hour12: false,
+ year: 'numeric',
+ month: '2-digit',
+ day: '2-digit',
+ hour: '2-digit',
+ minute: '2-digit',
+ second: '2-digit',
+ };
+
+ // 页面加载时
+ onMounted(() => {
+ const baseSize = 38;
+ function setRem() {
+ const scale = document.documentElement.clientWidth / 1920;/* 当前页面宽度缩放比例,可根据自己需要修改 */
+ document.documentElement.style.fontSize = baseSize * Math.min(scale, 2) + "px";/* 设置页面根节点字体大小 */
+ }
+
+ setRem();
+
+ window.onresize = () => {
+ setRem();/* 改变窗口大小时重新设置 rem */
+ }
+ getDateTime();
+ setInterval(() => {
+ getDateTime();
+ }, 1000);
+ initgasN()
+ initgasT()
+ initMap()
+ });
+
+ const config = reactive({
+ header: ['预警级别','气体名称', '气体浓度', '时间'],
+ data: [
+ ['红色预警', '甲烷', '19', '2023-08-10'],
+ ['<span style="color:red;">红色预警</span>', '甲烷', '19', '2023-08-10'],
+ ['红色预警', '甲烷', '19', '2023-08-10'],
+ ['红色预警', '甲烷', '19', '2023-08-10'],
+ ['红色预警', '甲烷', '19', '2023-08-10'],
+ ['红色预警', '甲烷', '19', '2023-08-10']
+ ],
+ index: true,
+ columnWidth: [38],
+ align: ['center','center','center','center','center'],
+ headerBGC: '',
+ oddRowBGC: '',
+ evenRowBGC: ''
+ })
+
+ const bigConfig = reactive({
+ header: ['时间','温度', '湿度', '风速', '风向', '气压'],
+ data: [
+ ['2023-08-10 13:29:25','56', '105', '40', '32', '20'],['2023-08-10 13:29:25','56', '105', '40', '32', '20'],['2023-08-10 13:29:25','56', '105', '40', '32', '20'],['2023-08-10 13:29:25','56', '105', '40', '32', '20'],['2023-08-10 13:29:25','56', '105', '40', '32', '20'],['2023-08-10 13:29:25','56', '105', '40', '32', '20'],['2023-08-10 13:29:25','56', '105', '40', '32', '20'],['2023-08-10 13:29:25','56', '105', '40', '32', '20'],['2023-08-10 13:29:25','56', '105', '40', '32', '20']
+ ],
+ align: ['center','center','center','center','center','center'],
+ headerBGC: '',
+ oddRowBGC: '',
+ evenRowBGC: '',
+ rowNum: 3
+ })
+
+ const mouseoverHandler = (e: any) => {
+ console.log(e)
+ }
+
+ const clickHandler = (e: any) => {
+ console.log(e)
+ }
+
+ type EChartsOption = echarts.EChartsOption
+ const initgasN =()=>{
+ let dom = document.getElementById(gasN.value);
+ let myChart = echarts.init(dom);
+ let option: EChartsOption;
+ option = {
+ xAxis: {
+ type: 'category',
+ data: ['10:36:30', '10:36:30', '10:36:30', '10:36:30', '10:36:30', '10:36:30', '10:36:30', '10:36:30', '10:36:30', '10:36:30', '10:36:30', '10:36:30'],
+ axisLabel: {
+ color: '#fff'
+ }
+ },
+ yAxis: {
+ axisLine:{
+ show: true
+ },
+ splitLine: {
+ show: false
+ },
+ axisLabel:{
+ color: '#ccc'
+ }
+ },
+ grid: {
+ top: '5%',
+ bottom: '10%',
+ right: '0%'
+ },
+ series: [
+ {
+ data: [150, 230, 224, 218, 135, 147, 230, 224, 218, 135, 147, 260],
+ type: 'line',
+ // label:{
+ // show: true,
+ // color: '#fff',
+ // textBorderColor: 'transparent'
+ // },
+ lineStyle:{
+ color: '#54d5ff'
+ },
+ itemStyle:{
+ color: '#54d5ff',
+ },
+ areaStyle:{
+ color: {
+ type: 'linear',
+ x: 0,
+ y: 0,
+ x2: 0,
+ y2: 1,
+ colorStops: [{
+ offset: 0, color: '#2af' // 0% 处的颜色
+ }, {
+ offset: 1, color: 'rgba(255,255,255,.1)' // 100% 处的颜色
+ }],
+ global: false // 缺省为 false
+ }
+ }
+ }
+ ]
+ }
+
+ option && myChart.setOption(option);
+ window.addEventListener("resize",function (){
+ myChart.resize();
+ });
+ }
+ const initgasT =()=>{
+ let dom = document.getElementById(gasT.value);
+ let myChart = echarts.init(dom);
+ let option: EChartsOption;
+ option = {
+ tooltip: {
+ trigger: 'axis',
+ axisPointer: {
+ type: 'shadow'
+ }
+ },
+ legend: {
+ textStyle: {
+ color: '#fff'
+ }
+ },
+ grid: {
+ left: '0%',
+ right: '0%',
+ bottom: '1%',
+ containLabel: true
+ },
+ xAxis: {
+ type: 'category',
+ data: ['10:36:30', '10:36:30', '10:36:30', '10:36:30', '10:36:30', '10:36:30'],
+ axisLabel: {
+ color: '#fff'
+ }
+ },
+ yAxis: {
+ type: 'value',
+ boundaryGap: [0, 0.01],
+ splitLine: {
+ show: false
+ },
+ axisLabel:{
+ color: '#ccc'
+ }
+ },
+ series: [
+ {
+ name: '2011',
+ type: 'bar',
+ data: [18, 23, 29, 10, 13, 6],
+ label:{
+ show: true,
+ color: '#fff',
+ textBorderColor: 'transparent'
+ }
+ },
+ {
+ name: '2012',
+ type: 'bar',
+ data: [19, 23, 31, 12, 13, 6],
+ label:{
+ show: true,
+ color: '#fff',
+ textBorderColor: 'transparent'
+ }
+ }
+ ]
+ }
+
+ option && myChart.setOption(option);
+ window.addEventListener("resize",function (){
+ myChart.resize();
+ });
+ }
+
+ const map = shallowRef(null)
+ const initMap=()=> {
+ let m = map.value
+ window._AMapSecurityConfig = {
+ securityJsCode: "456045075984862a9806587f0d7fee3c",
+ };
+ AMapLoader.load({
+ key: '5dbeedfa28e0d7fffb59684446569773', // 申请好的Web端开发者Key,首次调用 load 时必填
+ version: '2.0', // 指定要加载的 JSAPI 的版本,缺省时默认为 1.4.15
+ plugins: [] // 需要使用的的插件列表,如比例尺'AMap.Scale'等
+ })
+ .then(AMap => {
+ if (AMap && typeof AMap.Map === 'function') {
+ m = new AMap.Map('bigMap', {
+ viewMode: '2D',
+ mapStyle: 'amap://styles/normal',
+ zoom: 18,
+ center: [85.057805, 45.62550],
+ // layers:[
+ // new AMap.TileLayer.RoadNet({}),
+ // new AMap.TileLayer.Satellite()
+ // ],
+ zooms:[2,20],
+ })
+
+ AMap.plugin(["AMap.DistrictSearch","AMap.ToolBar","AMap.ControlBar"],()=> {
+ var district = new AMap.DistrictSearch({
+ extensions: "all",
+ subdistrict: 0,
+ level: "district",
+ });
+ district.search("克拉玛依市", function (status, result) {
+ // // 外多边形坐标数组和内多边形坐标数组
+ var outer = [
+ new AMap.LngLat(-360, 90, true),
+ new AMap.LngLat(-360, -90, true),
+ new AMap.LngLat(360, -90, true),
+ new AMap.LngLat(360, 90, true),
+ ]; // 使得遮盖填充反向
+ var holes = result.districtList[0].boundaries; // 得到该区域的边界坐标集合
+
+ var pathArray = [outer];
+ pathArray.push.apply(pathArray, holes);
+ var polygon = new AMap.Polygon({
+ pathL: pathArray,
+ //线条颜色,使用16进制颜色代码赋值。默认值为#006600
+ strokeColor: "#11feee",
+ strokeWeight: 3,
+ fillColor: "#051342",
+ fillOpacity: 1,
+ strokeStyle: "solid",
+ strokeDasharray: [2, 2],
+ });
+ polygon.setPath(pathArray)
+ m.add(polygon);
+ })
+ m.addControl(new AMap.ToolBar({
+ position: {
+ top: '20px',
+ left: 'calc(25% + 5px)'
+ }
+ }))
+ m.addControl(new AMap.ControlBar({
+ position: {
+ top: '20px',
+ right: 'calc(25% + 5px)'
+ }
+ }))
+ })
+
+ } else {
+ console.error('AMap 或 AMap.Map 不可用');
+ }
+ })
+ .catch(e => {
+ console.log('加载高德地图时出错:', e)
+ })
+ }
+ // 当前时间
+ const getDateTime = () => {
+ const curTime = new Date().toLocaleString('zh', timeForm).replace(/\//g, '-');
+ state.time = curTime.slice(10, 19);
+ state.date = curTime.slice(0, 10);
+ let week = ['日', '一', '二', '三', '四', '五', '六'];
+ let day = new Date().getDay();
+ state.weekDay = '星期' + week[day];
+ let curHour = Number(curTime.slice(10, 13));
+ if (curHour >= 5 && curHour <= 10) {
+ state.dayTime = '上午';
+ }
+ if (curHour > 10 && curHour <= 12) {
+ state.dayTime = '中午';
+ }
+ if (curHour > 12 && curHour <= 18) {
+ state.dayTime = '下午';
+ }
+ if (curHour > 18 && curHour <= 22) {
+ state.dayTime = '晚上';
+ }
+ if (curHour > 22) {
+ state.dayTime = '午夜';
+ }
+ }
+ const toFull= ()=>{
+ router.push({
+ path:"/fullScreen"
+ })
+ context.emit('clickFull')
+ }
+ const back=()=>{
+ window.history.go(-1);
+ context.emit('clickFull')
+ }
+
+ onUnmounted(()=>{
+ map.value && map.value.destroy();
+ })
+
+ return {
+ timeForm,
+ config,
+ bigConfig,
+ gasN,
+ gasT,
+ map,
+ mouseoverHandler,
+ clickHandler,
+ toFull,
+ back,
+ ...toRefs(state)
+ };
+ }
+});
+</script>
+<style lang="scss" scoped>
+.charts-container{
+ width: 100%;
+ height: 100%;
+ background: url("../../../assets/warningScreen/body-bg.png") no-repeat center;
+ background-size: 100% 100%;
+}
+.header-content {
+ width: 100%;
+ height: 10%;
+ padding: 0 20px;
+ display: flex;
+ align-items: flex-start;
+ justify-content: space-around;
+ z-index: 9;
+
+ .title-left {
+ width: 27%;
+ height: 50%;
+ display: flex;
+ align-items: center;
+ .datetime{
+ display: flex;
+ align-items: center;
+ color: #11feee;
+
+ .timel{
+ font-size: 30px;
+ margin-right: 10px;
+ }
+ .timer{
+ font-size: 12px;
+ }
+ }
+ }
+ .title {
+ width: 46%;
+ height: 100%;
+ font-size: 28px;
+ font-weight: bolder;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ letter-spacing: 10px;
+ color: #11feee;
+ }
+
+ .title-right {
+ width: 27%;
+ height: 50%;
+ display: flex;
+ align-items: center;
+ justify-content: right;
+ font-size: 14px;
+
+ .btns{
+ display: flex;
+ align-items: center;
+ top: 3%;
+ right: 10%;
+
+ .backBtn,.fullBtn{
+ display: flex;
+ color: #11feee;
+ align-items: center;
+ cursor: pointer;
+
+ &>div{
+ margin-left: 6px;
+ }
+ }
+ }
+ }
+}
+.main-content{
+ width: 100%;
+ height: 90%;
+ padding: 10px;
+ display: flex;
+ align-items: flex-end;
+ justify-content: space-between;
+ position: relative;
+
+ &>div{
+ height: 100%;
+ display: flex;
+ flex-direction: column;
+ justify-content: space-between;
+ align-items: flex-start;
+ &>div{
+ padding: 0 4px;
+ box-sizing: border-box;
+ .chart-head{
+ width: 100%;
+ height: 40px;
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+
+ .chart-tit{
+ width: 34%;
+ padding-left: 15px;
+ letter-spacing: 4px;
+ font-size: 16px;
+ font-weight: bolder;
+ line-height: 34px;
+ color: #11feee;
+ }
+ .long-tit{
+ width: 40%;
+ }
+ .el-select{
+ width: 60%;
+ height: 20px;
+ }
+ ::v-deep(.el-popper){
+ background-color: rgba(10,31,92,1);
+ border: 1px solid rgba(17,254,238,.4);
+ color: #11FEEE;
+
+ .el-icon{
+ color: #11FEEE;
+ }
+ .el-select-dropdown__item{
+ color: #11FEEE;
+ }
+ .el-select-dropdown__item.hover{
+ background: #0049af;
+ }
+ }
+ ::v-deep(.el-popper__arrow){
+ &::before{
+ background-color: rgba(10,31,92,.6) !important;
+ border: 1px solid rgba(17,254,238,.4);
+ }
+ }
+
+ .sys-status{
+ width: 66%;
+ height: 70%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ font-size: 12px;
+ div{
+ color: #fff;
+ margin-left: 2px;
+ span{
+ color: #11feee;
+ margin-left: 10px;
+ font-size: 14px;
+ }
+ }
+ }
+
+ .el-radio-group{
+ height: 90%;
+ width: 66%;
+ flex-flow: row nowrap;
+ display: flex;
+ align-items: center;
+ justify-content: right;
+ .el-radio{
+ width: calc((100% - 6px)/4);
+ margin-right: 0;
+ margin-left: 2px;
+ margin-bottom: 0;
+ text-align: center;
+ border-color: #ccc;
+ &.el-radio--small{
+ height: 20px;
+ }
+ :deep(.el-radio__inner){
+ display: none;
+ }
+ :deep(.el-radio__label){
+ width: 100%;
+ padding-left: 0;
+ font-size: 10px;
+ color: #ccc;
+ }
+ }
+ .el-radio.is-bordered.is-checked{
+ border-color: #11FEEE;
+ background: #005dd6;
+ box-shadow: 0 3px 8px rgba(0,0,0,.2);
+
+ :deep(.el-radio__label){
+ color: #fff;
+ }
+ }
+ }
+ :deep(.el-date-editor){
+ width: 66%;
+ height: 20px;
+ .el-range-separator{
+ color: #fff;
+ }
+ }
+
+ :deep(.el-input__wrapper){
+ box-shadow: none;
+ border: 1px solid #11FEEE;
+ background: #005dd6;
+ color: #fff;
+
+ input{
+ font-size: 10px;
+ color: #fff;
+ }
+ .el-icon{
+ display: none;
+ color: #fff;
+ }
+ }
+
+ .searchGroup{
+ width: 60%;
+ height: 20px;
+ display: flex;
+ align-items: center;
+ }
+ }
+ .chart-cont{
+ height: calc(100% - 40px);
+ width: 100%;
+ display: flex;
+ align-items: center;
+ justify-content: space-around;
+ padding: 0 15px;
+
+ .orange,.red{
+ width: 140px;
+ height: 140px;
+ border-radius: 50%;
+ border: 2px solid #ffb74b;
+ padding: 8px;
+ div{
+ width: 100%;
+ height: 100%;
+ border-radius: 50%;
+ background: #ffb74b;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ color: #fff;
+ font-size: 14px;
+ span:first-of-type{
+ font-size: 28px;
+ font-weight: bolder;
+ margin-bottom: 4px;
+ }
+ }
+ }
+ .red{
+ border: 2px solid #ee594a;
+ div{
+ background: #ee594a;
+ }
+ }
+ :deep(.dv-scroll-board){
+ width: 100%;
+ height: 90%;
+ .header{
+ font-size: 12px;
+ color: #11feee;
+ }
+ .rows{
+ .row-item{
+ border-bottom: 1px dashed rgba(255,255,255,.2);
+ font-size: 12px;
+ }
+ }
+ }
+ .online{
+ width: 50%;
+ padding: 0 10px;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ .dv-decoration-9{
+ width: 120px;
+ height: 120px;
+ .isOnline{
+ font-size: 36px;
+ font-family: "PingFang SC";
+ font-weight: 600;
+ color: #2af;
+ text-shadow: 0 1px 3px #2af;
+ }
+ .red-font{
+ color: red;
+ text-shadow: 0 1px 3px red;
+ }
+ }
+ &>div{
+ color: #2af;
+ margin-top: 10px;
+ }
+ .totalNum{
+ color: #ccc;
+ span{
+ font-size: 18px;
+ color: #11feee;
+ margin-right: 10px;
+ }
+ }
+ .dataPic{
+ width: 100%;
+ height: 100px;
+ background: url("../../../assets/warningScreen/data.gif") no-repeat center;
+ background-size: 100% 100%;
+ }
+ }
+ .echart{
+ width: 100%;
+ height: 80%;
+ }
+ }
+
+ .bigData{
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ padding: 5px 10px;
+ .bigPic{
+ width: 100%;
+ height: 50px;
+ display: flex;
+ align-items: center;
+ justify-content: space-around;
+ div{
+ width: 50px;
+ height: 50px;
+ background: url("../../../assets/warningScreen/data-1.png") no-repeat center;
+ background-size: 90% 90%;
+ }
+ div:nth-of-type(2){
+ background: url("../../../assets/warningScreen/data-2.png") no-repeat center;
+ background-size: 90% 90%;
+ }
+ div:nth-of-type(3){
+ background: url("../../../assets/warningScreen/data-3.png") no-repeat center;
+ background-size: 90% 90%;
+ }
+ div:nth-of-type(4){
+ background: url("../../../assets/warningScreen/data-4.png") no-repeat center;
+ background-size: 90% 90%;
+ }
+ div:nth-of-type(5){
+ background: url("../../../assets/warningScreen/data-5.png") no-repeat center;
+ background-size: 90% 90%;
+ }
+ div:nth-of-type(6){
+ background: url("../../../assets/warningScreen/data-6.png") no-repeat center;
+ background-size: 90% 90%;
+ }
+ }
+
+ :deep(.dv-scroll-board){
+ width: 100%;
+ height: calc(100% - 60px);
+ .header{
+ color: #11feee;
+ }
+ .rows{
+ background: url("../../../assets/warningScreen/scroll-bg.png") no-repeat center;
+ background-size: 100% 100%;
+ padding: 6px 0 0;
+ .row-item{
+ border-bottom: none;
+ }
+ }
+ }
+ }
+ }
+ }
+
+ #bigMap{
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ left: 0;
+ top: 0;
+
+ :deep(.amap-logo){
+ display: none!important;
+ visibility: hidden!important;
+ }
+
+ :deep(.amap-copyright) {
+ display: none!important;
+ visibility: hidden!important;
+ }
+ }
+
+ .main-left{
+ z-index: 9;
+ width: calc(25% - 5px);
+ &>div{
+ width: 100%;
+ height: calc((100%/3) - (20px/3));
+ }
+ .withFilter{
+ background: url("../../../assets/warningScreen/chart-bg2.png") no-repeat center;
+ background-size: 100% 100%;
+ }
+ .withoutFilter{
+ background: url("../../../assets/warningScreen/chart-bg.png") no-repeat center;
+ background-size: 100% 100%;
+ }
+ }
+ .main-middle{
+ width: calc(50% - 10px);
+ height: calc((100%/3) - (20px/3));
+ z-index: 9;
+
+ .mid-bottom{
+ width: 100%;
+ height: 100%;
+ background: url("../../../assets/warningScreen/chart-bg4.png") no-repeat center;
+ background-size: 100% 100%;
+ }
+ }
+ .main-right{
+ width: calc(25% - 5px);
+ z-index: 9;
+ &>div{
+ width: 100%;
+ height: calc((100%/3) - (20px/3));
+ }
+ .withFilter{
+ background: url("../../../assets/warningScreen/chart-bg2.png") no-repeat center;
+ background-size: 100% 100%;
+ }
+ .withFilterLong{
+ background: url("../../../assets/warningScreen/chart-bg3.png") no-repeat center;
+ background-size: 100% 100%;
+ }
+ .withoutFilter{
+ background: url("../../../assets/warningScreen/chart-bg.png") no-repeat center;
+ background-size: 100% 100%;
+ }
+ }
+}
+</style>
\ No newline at end of file
diff --git a/src/views/bigScreen/fullScreen/index.vue b/src/views/bigScreen/fullScreen/index.vue
new file mode 100644
index 0000000..44c799d
--- /dev/null
+++ b/src/views/bigScreen/fullScreen/index.vue
@@ -0,0 +1,46 @@
+<template>
+ <div class="screen-container">
+ <screen :isFull="isScreenfull" @clickFull="clickFullscreen"></screen>
+ </div>
+</template>
+
+<script lang="ts">
+import { toRefs, reactive, onMounted, ref, defineComponent } from 'vue';
+import screen from '../components/screen.vue'
+import screenfull from 'screenfull'
+import { ElMessage, ElMessageBox } from 'element-plus';
+
+// 定义接口来定义对象的类型
+interface TableDataState {
+ isScreenfull: boolean
+}
+
+export default defineComponent({
+ name: 'fullScreen',
+ components: {screen},
+ setup() {
+ const state = reactive<TableDataState>({
+ isScreenfull: true,
+ });
+
+ // 页面加载时
+ onMounted(() => {
+
+ });
+
+ const clickFullscreen =() => {
+
+ }
+
+ return {
+ clickFullscreen,
+ ...toRefs(state)
+ };
+ }
+});
+</script>
+<style lang="scss" scoped>
+.screen-container{
+ height: 100vh;
+}
+</style>
\ No newline at end of file
diff --git a/src/views/bigScreen/index.vue b/src/views/bigScreen/index.vue
index f7775c5..375be53 100644
--- a/src/views/bigScreen/index.vue
+++ b/src/views/bigScreen/index.vue
@@ -1,39 +1,50 @@
<template>
- <div class="system-role-container">
- 6666666
+ <div class="screen-container">
+ <screen :isFull="isScreenfull" @clickFull="clickFullscreen"></screen>
</div>
</template>
<script lang="ts">
import { toRefs, reactive, onMounted, ref, defineComponent } from 'vue';
+import screen from './components/screen.vue'
+import screenfull from 'screenfull'
+import { ElMessage, ElMessageBox } from 'element-plus';
// 定义接口来定义对象的类型
-interface TableData {
-
-}
interface TableDataState {
-
+ isScreenfull: boolean
}
export default defineComponent({
name: 'bigScreen',
- components: { },
+ components: { screen },
setup() {
- const roleDialogRef = ref();
const state = reactive<TableDataState>({
-
+ isScreenfull: false,
});
// 页面加载时
onMounted(() => {
});
- return {
- ...toRefs(state)
+
+ const clickFullscreen =() => {
+ if(!screenfull.isEnabled){
+ ElMessage.error('浏览器不支持')
+ return false
+ }
+ screenfull.toggle();
+ }
+
+ return {
+ clickFullscreen,
+ ...toRefs(state)
};
}
});
</script>
<style lang="scss" scoped>
-
+.screen-container{
+ height: calc(100vh - 144px);
+}
</style>
\ No newline at end of file
diff --git a/src/views/loginPage/component/accountLogin.vue b/src/views/loginPage/component/accountLogin.vue
index d6c456d..1e074ad 100644
--- a/src/views/loginPage/component/accountLogin.vue
+++ b/src/views/loginPage/component/accountLogin.vue
@@ -1,14 +1,14 @@
<template>
<el-form size="large" class="login-content-form">
<el-form-item class="login-animation1">
- <el-input type="text" :placeholder="$t('message.account.accountPlaceholder1')" v-model="ruleForm.name" clearable autocomplete="off" size="large">
+ <el-input type="text" placeholder="请输入用户名" v-model="ruleForm.name" clearable autocomplete="off" size="large">
<template #prefix>
<el-icon class="el-input__icon" style="margin-right: 20px"><img src="../../../assets/loginPage/login_icon_user.png" style="width: 24px; height: 24px" /></el-icon>
</template>
</el-input>
</el-form-item>
<el-form-item class="login-animation2">
- <el-input :type="isShowPassword ? 'text' : 'password'" :placeholder="$t('message.account.accountPlaceholder2')" v-model="ruleForm.pwd" autocomplete="off" size="large" @keyup.enter.native="onSignIn">
+ <el-input :type="isShowPassword ? 'text' : 'password'" placeholder="请输入密码" v-model="ruleForm.pwd" autocomplete="off" size="large" @keyup.enter.native="onSignIn">
<template #prefix>
<el-icon class="el-input__icon" style="margin-right: 20px"><img src="../../../assets/loginPage/login_icon_password.png" style="width: 24px; height: 24px" /></el-icon>
</template>
@@ -84,7 +84,7 @@
import { useLoginApi } from '/@/api/login';
import { useUserInfo } from '/@/stores/userInfo';
import type { FormInstance, FormRules } from 'element-plus'
-
+import "amfe-flexible";
import {verifyPhone,verifyIdCard} from "/@/utils/toolsValidate"
import { Base64 } from 'js-base64'
import {useMenuApi} from "/@/api/systemManage/menu";
@@ -122,6 +122,17 @@
// 页面载入时执行方法
onMounted(() => {
hasUserCodeOrPassword()
+ const baseSize = 38;
+ /* 设置 rem 函数 */
+ function setRem() {
+ const scale = document.documentElement.clientWidth / 1920; /* 当前页面宽度缩放比例,可根据自己需要修改 */
+ document.documentElement.style.fontSize = baseSize * Math.min(scale, 2) + "px";/* 设置页面根节点字体大小 */
+ }
+ setRem();/* 初始化 rem */
+
+ window.onresize = () => {
+ setRem();/* 改变窗口大小时重新设置 rem */
+ }
// getAllDepartment();
});
@@ -190,7 +201,6 @@
state.loading.signIn = true;
// 存储 token 到浏览器缓存
let res = await useLoginApi().signIn(state.ruleForm);
- console.log(res)
if (res.data.code === 100) {
await userInfo.setUserInfos(res.data.data);
Cookies.set('token', res.data.data.tk);
@@ -388,7 +398,6 @@
border: 1px solid #11FEEE;
letter-spacing: 4px;
font-weight: 300;
- margin-top: 15px;
background-image: linear-gradient(to bottom,#0081C2,#003892,#0081C2);
transition: 0.3s;
box-shadow: 0 8px 30px rgba(88,101,241,.4);
@@ -397,6 +406,7 @@
border: 2px solid #11FEEE;
color: #11FEEE;
font-weight: bolder;
+ background-color: transparent;
background-image: linear-gradient(to bottom,#003892,#003892,#003892);
}
&:active {
@@ -404,6 +414,7 @@
border: 2px solid #11FEEE;
color: #11FEEE;
font-weight: bolder;
+ background-color: transparent;
background-image: linear-gradient(to bottom,#003892,#003892,#003892);
}
}
diff --git a/src/views/loginPage/loginPage.vue b/src/views/loginPage/loginPage.vue
index 7ad9d7c..a41bf07 100644
--- a/src/views/loginPage/loginPage.vue
+++ b/src/views/loginPage/loginPage.vue
@@ -1,5 +1,8 @@
<template>
<div class="login-container">
+ <div class="starBg">
+
+ </div>
<div class="loginContent">
<div class="welcc">广域特殊气体泄露在线监测预警系统</div>
<div class="loginPanel">
@@ -23,7 +26,7 @@
import loginIconTwo from '/@/assets/login-icon-two.svg';
import { NextLoading } from '/@/utils/loading';
import AccountLogin from '/@/views/loginPage/component/accountLogin.vue';
-
+import "amfe-flexible";
// 定义接口来定义对象的类型
interface LoginState {
isScan: boolean;
@@ -45,6 +48,17 @@
// 页面加载时
onMounted(() => {
NextLoading.done();
+ const baseSize = 38;
+ /* 设置 rem 函数 */
+ function setRem() {
+ const scale = document.documentElement.clientWidth / 1920; /* 当前页面宽度缩放比例,可根据自己需要修改 */
+ document.documentElement.style.fontSize = baseSize * Math.min(scale, 2) + "px";/* 设置页面根节点字体大小 */
+ }
+ setRem();/* 初始化 rem */
+
+ window.onresize = () => {
+ setRem();/* 改变窗口大小时重新设置 rem */
+ }
});
return {
logoMini,
@@ -77,7 +91,19 @@
background: url('../../assets/loginPage/login-bg.jpg') no-repeat center;
background-size: 100% 100%;
/*background-image: radial-gradient(at center, #0075c3, #000b61);*/
-
+ .starBg{
+ width: 1030px;
+ height: 1135px;
+ position: absolute;
+ left: 50%;
+ transform: translateX(-50%);
+ top: 50px;
+ z-index: -1;
+ background: url("../../assets/loginPage/starFalls.gif") no-repeat center;
+ background-size: 100% 100%;
+ opacity: 0.1;
+ -webkit-opacity: 0.1;
+ }
.rights {
font-size: 12px;
color: #fff;
@@ -91,7 +117,7 @@
}
}
.loginContent {
- width: 32vw;
+ width: 40%;
display: flex;
flex-direction: column;
align-items: center;
@@ -109,7 +135,7 @@
}
.loginPanel {
width: 100%;
- padding: 4vh;
+ padding: 60px 180px 80px;
box-sizing: border-box;
display: flex;
flex-direction: column;
diff --git a/vite.config.ts b/vite.config.ts
index b761ba2..94ad22d 100644
--- a/vite.config.ts
+++ b/vite.config.ts
@@ -1,7 +1,7 @@
import vue from '@vitejs/plugin-vue';
import { resolve } from 'path';
import { defineConfig, loadEnv, ConfigEnv } from 'vite';
-
+import postCssPxToRem from "postcss-pxtorem"
const pathResolve = (dir: string): any => {
return resolve(__dirname, '.', dir);
};
@@ -57,18 +57,18 @@
css: {
postcss: {
plugins: [
- {
- postcssPlugin: 'internal:charset-removal',
- AtRule: {
- charset: (atRule) => {
- if (atRule.name === 'charset') {
- atRule.remove();
- }
+ postCssPxToRem({
+ rootValue: 37.5, // 1rem的大小(控制1rem的大小 点位:px)
+ propList: ["*"], // 需要转换的属性,这里选择全部都进行转换
+ exclude: (e:any) => { // 不包含
+ if (/src(\\|\/)views(\\|\/)bigScreen(\\|\/)components(\\|\/)screen/.test(e)||/src(\\|\/)views(\\|\/)loginPage(\\|\/)loginPage/.test(e)||/src(\\|\/)views(\\|\/)loginPage(\\|\/)component(\\|\/)accountLogin/.test(e)) { // 指定生效页面(正则)
+ return false;
}
+ return true;
}
- }
- ]
- }
+ }),
+ ],
+ },
},
define: {
__VUE_I18N_LEGACY_API__: JSON.stringify(false),
--
Gitblit v1.9.2